如何在终端中使用inotify-tools获取递归目录路径

时间:2013-08-17 13:39:27

标签: php bash ubuntu-12.04 inotify inotifywait

我正在使用inotify-tools,我想要一个在递归目录中创建的文件通知

直到这里我成功了

现在我想获得在递归文件夹中创建/转储文件的目录路径

例如,abc.txt文件被转储到data / test文件夹

我希望路径为data / test / abc.txt

以下是我在.sh文件中使用的代码

inotifywait -m -r --format '%f' -e modify -e move -e create -e delete /var/www/cloud/data | while read LINE; 
do 
    php /var/www/cloud/scannner/watcher.php; 
done

请帮助我在递归目录中获取转储文件的路径

干杯

1 个答案:

答案 0 :(得分:2)

使用%w修饰符:

inotifywait -m -r --format '%w%f' .......

将inotifywait的输出作为参数传递给php脚本,该脚本将为argv变量读取它,你可以这样做:

inotifywait -m -r --format '%w%f' ....... | while read -r line
do 
    php script.php "$line"
done

否则,如果您希望php脚本从standard input读取inotifywait的输出,那么您可以直接使用您的脚本:

inotifywait -m -r --format '%w%f' ....... | php script.php