创建文件时运行脚本

创建文件时运行脚本

在某个目录中创建文件时如何运行脚本?

答案1

你可以使用因克朗(通知cron)。

与 相同的想法cron,只不过不是基于时间,而是定义一个incrontab来指定在文件系统中的某些给定事件上运行什么命令。

在你的情况下incrontab看起来像:

/tmp IN_CLOSE_WRITE /path/to/someCommand $#

someCommand每当文件被写入并以文件名作为参数关闭时就会被调用(并且需要someCommand检查是否传递了一个名为 的文件myFile)。

不过有一个警告。/tmp是世界可写的,因此任何人、任何东西都可以在那里写入文件,也可以在那里创建符号链接。因此,它可能会导致您在传输myFile(使用符号链接)时覆盖您具有写访问权限的任何文件,或者可能导致您运行不同于您期望的命令(例如特洛伊木马)。将文件放在只有您有写访问权限的目录中会更有意义。

答案2

您可以将相同的脚本放入cron

while true; do
   modification_time=`stat --printf=%y /tmp/mydir`
   if [ "$modification_time" != "`stat --printf=%y /tmp/mydir`" ]; then
      echo YOUR DIR CHANGED
   fi;
done;

我测试了工作。你可以改变echo line

相关内容