【发布时间】:2012-10-24 08:23:37
【问题描述】:
我正在监视目录中新文件的创建/移动。 我目前正在使用一个简单的 ls 循环,我想转到 inotify。
我有一个主要问题:如何使用预先存在的文件进行初始化(以防崩溃、重启、停止……)?
最初,我只想监视 IN_CREATE 和 IN_MOVED_TO 但这不会处理预先存在的文件。
可以通过inotify原生处理吗?
【问题讨论】:
标签: linux events loops inotify
我正在监视目录中新文件的创建/移动。 我目前正在使用一个简单的 ls 循环,我想转到 inotify。
我有一个主要问题:如何使用预先存在的文件进行初始化(以防崩溃、重启、停止……)?
最初,我只想监视 IN_CREATE 和 IN_MOVED_TO 但这不会处理预先存在的文件。
可以通过inotify原生处理吗?
【问题讨论】:
标签: linux events loops inotify
我建议你使用 iwatch 内部使用 inotify 的 perl 程序。(可以将其作为守护进程运行)
当您将其设置为带有文件的监视文件夹时,您只需在监视文件夹中运行touch *。这将更新文件的时间戳并触发 inotify 事件。
如果您需要对创建或移动的文件执行某些操作,请小心使用 IN_CREATE 事件,因为该事件将在文件创建后立即触发。在这种情况下,您可以使用事件 CLOSE_WRITE,该事件将在文件关闭后触发。
希望这会有所帮助!
【讨论】: