inotifywait исключить типы файлов

inotifywait исключить типы файлов

Я использую inotifywait в скрипте и мне интересно, есть ли способ исключить скрытые файлы из наблюдения?

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

решение1

Я предполагаю, что вы имеете в виду имена файлов, которые начинаются с точки ( .), вы можете их игнорировать. Дело в inotifywait --excludeтом, что шаблон, по-видимому, сопоставляется с полным путем файла, так что вам нужно будет это учитывать.

Итак, если вы указываете inotifywaitкаталоги fooи barдля просмотра, то шаблоны будут сопоставляться с именами файлов, например foo/something, bar/somethingelse. Как обычно в регулярных выражениях, вам нужно экранировать точку.

Это должно отслеживать все создания в текущем каталоге, за исключением dotfiles (это регулярное выражение, поэтому нам нужно экранировать точки):

inotifywait -ecreate -m --exclude '^\./\.' .

Или, если говорить менее конкретно, исключите файлы с точками во всех каталогах, выполнив поиск по комбинации слеша и точки:

inotifywait -ecreate -m --exclude '/\.' foo bar

Конечно, это не сработает, если вы просматриваете каталог, в какой-то части пути которого есть точка; будет найдено все содержимое этого пути.

Связанный контент