
Estou usando inotifywait em um script e me pergunto se existe uma maneira de impedir que arquivos ocultos sejam monitorados?
Não consigo determinar o padrão regex para excluir arquivos ocultos.
Responder1
Presumo que você queira dizer nomes de arquivos que começam com um ponto ( .
), você pode ignorá-los. O problema inotifywait --exclude
é que o padrão parece corresponder ao caminho completo do arquivo, então você precisará levar isso em consideração.
Então, se você fornecer inotifywait
os diretórios foo
e bar
observar, os padrões corresponderão aos nomes de arquivos como foo/something
, bar/somethingelse
. Como de costume em regexes, você precisa escapar do ponto.
Isso deve observar todas as criações no diretório atual, exceto dotfiles (é um regex, então precisamos escapar dos pontos):
inotifywait -ecreate -m --exclude '^\./\.' .
Ou, menos especificamente, exclua dotfiles em qualquer diretório, procurando a combinação de barra e ponto:
inotifywait -ecreate -m --exclude '/\.' foo bar
Isso, é claro, não funcionará se você estiver observando um diretório com um ponto inicial em alguma parte do caminho; corresponderá a tudo nesse caminho.