inotifywait
не имеет опции включения, а расширенные регулярные выражения POSIX не поддерживают отрицание.(Отвечено FailedDev )
Вы можете исправить инструменты inotify, чтобы получить опцию --include
.Но вам нужно собрать и поддерживать его самостоятельно.(Ответ: browndav )
Более быстрый обходной путь использует grep
.
$ inotifywait -m -r ~/js | grep '\.js$'
Но помните о буферизации grep, если вы передаете вывод другим командам.Добавьте --line-buffered
, чтобы он работал с while read
.Вот пример:
$ inotifywait -m -r ~/js | grep '\.js$' --line-buffered |
while read path events file; do
echo "$events happened to $file in $path"
done
Если вы просто хотите просмотреть уже существующие файлы, вы также можете использовать find
для создания списка файлов.Он не будет смотреть вновь созданные файлы.
$ find ~/js -name '*.js' | xargs inotifywait -m
Если все ваши файлы находятся в одном каталоге, вы также можете воспользоваться предложением ostrokach .В этом случае расширение оболочки намного проще, чем поиск и xargs.Но опять же, он не будет смотреть вновь созданные файлы.
$ inotifywait -m ~/js/*.js