我正在寻找像内核的inotify函数一样的shell命令。
有没有一个命令可以监视一个目录,可以像这样使用:
while [ 1 ]; do name-of-monitor-program . && echo "something changed" done
你正在寻找的是incron 。
incron和incrontab是inotify cron应用程序,而不是根据时间来触发事件,它观察某个文件夹/文件,并根据该文件夹/文件发生的事情触发脚本/命令,甚至插入该文件/文件夹的名称到命令。
事件解释在这里: http : //linux.die.net/man/5/incrontab
一个典型的使用案例是“观察这个文件夹中传入的文件通过(S)FTP转储和转码”,而不是每分钟运行一个cron并检查新文件。
还值得注意的是,开发人员类作为Alpha软件incron 。 我之前在生产环境中使用过,没有任何问题,但值得考虑。
我find了iwatch 。
在问这个问题之前,我不知道为什么我没有考虑过使用apt-cache search inotify 。
这是我用它的方式:
iwatch -r -c "PATH=$PATH; program-i-wanted-to-run" .
我不得不传入PATH环境variables,因为当程序产生时,它不会inheritanceshell的环境variables。