Bash 如何捕获更改文件夹中文件的事件?
UNIX中文件夹的内容发生更改(删除、添加或编辑)时是否会生成任何事件,是否可以捕获此事件以触发另一个脚本?如果您使用的是Linux,则可以使用子系统捕获此排序内容。Python、Perl等有Bash 如何捕获更改文件夹中文件的事件?,bash,shell,unix,Bash,Shell,Unix,UNIX中文件夹的内容发生更改(删除、添加或编辑)时是否会生成任何事件,是否可以捕获此事件以触发另一个脚本?如果您使用的是Linux,则可以使用子系统捕获此排序内容。Python、Perl等有inotify绑定,或者您可以在shell脚本中使用inotifywait程序(包的一部分) 例如,如果我运行inotifywait-m/tmp,这将监视/tmp的更改。如果创建文件,我会看到: /tmp/ CREATE foo /tmp/ OPEN foo /tmp/ ATTRIB foo /tmp/ C
inotify
绑定,或者您可以在shell脚本中使用inotifywait
程序(包的一部分)
例如,如果我运行inotifywait-m/tmp
,这将监视/tmp
的更改。如果创建文件,我会看到:
/tmp/ CREATE foo
/tmp/ OPEN foo
/tmp/ ATTRIB foo
/tmp/ CLOSE_WRITE,CLOSE foo
/tmp/ DELETE foo
如果我删除该文件,我会看到:
/tmp/ CREATE foo
/tmp/ OPEN foo
/tmp/ ATTRIB foo
/tmp/ CLOSE_WRITE,CLOSE foo
/tmp/ DELETE foo
您可以编写一个shell脚本,从
inotifywait
读取这些通知,并相应地执行操作。感谢您的提示,我使用inotify.h头文件创建了一个C程序,用于侦听文件夹中的更改。