当 UNIX 中的文件夹内容发生更改(删除、添加或编辑)时,是否会生成任何事件,并且可以捕获该事件来触发另一个脚本吗?
最佳答案
如果您使用的是 Linux,则可以使用 inotify子系统来捕捉这类事情。有针对 Python、Perl 等的 inotify
绑定(bind),或者您也可以在 shell 脚本中使用 inotifywait
程序(inotify-tools 包的一部分)。
例如,如果我运行 inotifywait -m/tmp
,它将监视 /tmp
的更改。如果我创建一个文件,我会看到:
/tmp/ CREATE foo
/tmp/ OPEN foo
/tmp/ ATTRIB foo
/tmp/ CLOSE_WRITE,CLOSE foo
如果我删除该文件,我会看到:
/tmp/ DELETE foo
您可以编写一个 shell 脚本,从 inotifywait
读取这些通知并相应地对其进行操作。
关于bash - 如何捕获更改文件夹中文件的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592607/