Я видел этот ответ .
Вы должны рассмотреть возможность использования inotifywait, например:
inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
Мой вопрос заключается в том, что приведенный выше скрипт следит за каталогом для создания файлов любого типа, но как мне изменить inotifywait
команду, чтобы она сообщала только тогда, когда файл определенного типа / расширения создан (или перемещен в каталог) - например, он должен сообщить, когда любой .xml
файл создан.
ЧТО Я ПОПЫТАЛ
Я выполнил inotifywait --help
команду и прочитал параметры командной строки. Он имеет --exclude <pattern>
и --excludei <pattern>
команды для ИСКЛЮЧЕНИЯ файлов определенных типов (с помощью regEx), но мне нужен способ ВКЛЮЧИТЬ только файлы определенного типа / расширения.
path
выше, вероятно, не лучшее имя переменной, если вы хотите поиграть с этим первым в оболочке. Если вы используете его, то вы не сможете использовать команды и все остальное, поскольку это в основном просто переопределило стандартPATH
. Поэтому я рекомендую использовать альтернативное имя var, например,fpath
вместо. т.е.while read fpath action file
любая стандартная команда, обычно доступная из вашей оболочки, все равно будет.