当视频文件被复制到目录中时,我使用fswatch监视目录并运行脚本:
fswatch -o /Path/To/Directory/Directory | xargs -n 1 sh /Path/To/Script/Script.sh问题是,在脚本被激活之前,文件通常没有完成它的副本。这些文件是不同大小的视频文件。小文件可以,大文件不行。
如何延迟fswatch通知,直到文件完成其副本?
发布于 2015-04-24 20:28:11
首先,fswatch“监视器”的行为是特定于操作系统的:当询问有关fswatch的问题时,最好指定您使用的操作系统。
但是,单独使用fswatch是不可能做到这一点的。进程可能会打开一个文件以便写入,并将其打开足够长的时间,以使操作系统能够发送多个事件。恐怕fswatch对此无能为力。
另一种方法可能是使用另一个工具来检查修改后的文件当前是否打开:如果没有打开,那么运行脚本,否则跳过它,等待它的下一个事件。这些工具是特定于操作系统的:在OS和Linux中,您可以使用lsof。请注意,此方法不会保护您免受脚本运行时打开该文件的另一个进程的影响。
https://stackoverflow.com/questions/29770677
复制相似问题