我有一段代码监视文件夹。如果一个文件在那里停留 3 分钟,我的代码将处理它。从现在开始是否已经过了 3 分钟,这取决于 mtime。
但是,我发现当我 cp 一个巨大的文件时,比如说 10GB,它无法在 3 分钟内完成,代码会中断,因为cp 在复制时似乎不会不时更新 mtime。
我观察到 cp 的正确行为了吗?
有什么解决办法吗?
谢谢,
据我所知,当上述修改完成时,mtime 会更新。我认为这样做是正确的。为什么在将文件复制到时需要知道文件是否已更新?如果你碰巧复制了那个文件,你最终会得到一个不完整的文件,可能没用。
但是,如果您确定要这样做,请确保您的复制智能,不仅取决于 mtime,还取决于上面答案中建议的文件大小。如果您看到文件大小以任何一种方式发生变化,无论 mtime 说什么,您都可以确定该文件已被修改,相对于上次处理它的时间。
有很多解决方法
mtime
和如果在 3 分钟内都没有增加,则继续处理。