使用shell脚本监视目录

我正在寻找像内核的inotify函数一样的shell命令。

有没有一个命令可以监视一个目录,可以像这样使用:

while [ 1 ]; do name-of-monitor-program . && echo "something changed" done 

你正在寻找的是incron 。

incronincrontabinotify 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。