Как получить рекурсивный путь к каталогу с помощью инструментов inotify в терминале

Я использую инструменты inotify, где мне нужно уведомление о файле, созданном в рекурсивных каталогах.

До сих пор я успешен

Теперь я хочу получить путь к каталогу, в котором файл был создан/выгружен в рекурсивных папках.

например, файл 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

Пожалуйста, помогите мне получить путь к файлу дампа в рекурсивных каталогах.

Ваше здоровье


person Saideep Kankarla    schedule 17.08.2013    source источник


Ответы (1)


Используйте модификатор %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 считывал вывод inotifywait из стандартного ввода, вы можете просто подключитесь к вашему сценарию:

inotifywait -m -r --format '%w%f' ....... | php script.php
person user000001    schedule 17.08.2013
comment
Thnx user000001... это сработало. Пожалуйста, помогите мне передать переменную $line в файл watcher.php - person Saideep Kankarla; 17.08.2013
comment
@SaideepKankarla добавил два решения для этого - person user000001; 17.08.2013