监视更改的目录列表?

在unix系统上,如何监视(如“尾部”的工作方式)对文件进行更改的目录 – 无论是创build新文件还是更改大小等。

寻找一个命令行工具,而不是要安装的东西。

Solutions Collecting From Web of "监视更改的目录列表?"

大多数unix变体都有一个API,但它不是标准化的。 在Linux上,有inotify 。 在命令行上,您可以使用inotifywait 。 用法示例:

 inotifywait -m /path/to/dir | while read -r dir event name; do case $event in OPEN) echo "The file $name was created or opened (not necessarily for writing)";; WRITE) echo "The file $name was written to";; DELETE) echo "The file $name was deleted ";; esac done 

Inotify事件类型往往不是你想要注意的(例如,OPEN非常宽),所以如果你最终做出自己的文件检查,不要感觉不好。

如果你不想安装工具,你可以自己制作。 只是一个想法。 使用find命令创建目录的基线文件。 使用循环或cron作业,使用相同的参数find目录,并根据基线文件检查新文件。 使用像diff的工具来获取差异..

例如

 find /path [other options] >> baseline.txt while true #or use a cron job do find /path [same options] >> listing.txt diff baseline.txt listing.txt # do processing here... mv listing.txt baseline.txt # update the baseline. sleep 60 done