inotifywait --event create /path/to/*.json
вообще не работает , потому что уже существующий файл не может иметь событие create
, а /path/to/*.json
заменяется списком уже существующих имен файлов на ваша оболочка до того, как inotifywait
даже запустится; любой файл, который не существует, не будет включен, и когда inotifywait
open()
s существующие файлы, он получит только существующие копии и, следовательно, даже не увидит новые файлы, созданные под тем же именем в будущем.
Вместо этого следуйте по каталогу:
inotifywait --quiet --monitor \
--event modify \
--event moved_to \
--event moved_from \
--event move \
--event unmount \
--event create \
--format '%w' /path/to | \
while IFS= read -r file; do
[[ $file = *.json ]] || continue # ignore any non-*.json files
echo "$file was changed."
done