Я видел этот ответ .
Вы должны рассмотреть возможность использования 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любая стандартная команда, обычно доступная из вашей оболочки, все равно будет.