Exclui diretórios de inotifywait

3

Fazendo um inotifywait para assistir a um diretório e tentando excluir subdiretórios all de serem assistidos enquanto não exclui os arquivos.

inotifywait -r -q --exclude <pattern> dir/

O que colocar em <pattern> ? Manual para inotifywait especifica:

--exclude <pattern>
Do not process any events whose filename matches the specified POSIX extended regular expression, case sensitive.

Não há sinalizador -type como em find . Eu tentei (^/) , mas isso parece excluir tudo.

Ajuda apreciada.

    
por Sqerstet 02.11.2014 / 16:25

3 respostas

4

Como a opção --exclude age apenas em nomes de arquivos, não há uma maneira direta de fazê-lo. Você pode tentar usar maneiras como find para imprimir o nome de todos os diretórios:

inotifywait --exclude "echo -n (;$(find . -maxdepth 1 -mindepth 1 -type d -printf '%P|');echo )" .

Observe que não especifiquei -r , pois isso fará com que os subdiretórios recém-criados sejam monitorados também.

Isso pode quebrar alguns caracteres especiais.

Você também pode tentar:

find . -maxdepth 1 -mindepth 1 -type d -printf '@%P' > list_of_directories
inotifywait --fromfile list_of_directories .

inotifywait excluirá todos os arquivos ou pastas em list_of_directories , que começam com @ (todos eles).

Se você estiver usando inotifywait com a opção recursiva, deixe find listar todos os subdiretórios aninhados removendo a restrição -maxdepth (também se aplica ao primeiro comando):

find . -mindepth 1 -type d -printf '@%P' > list_of_directories
inotifywait --fromfile list_of_directories . -r

O -mindepth é retido para impedir que find corresponda a . e, portanto, exclua também o diretório atual.

    
por muru 03.11.2014 / 20:50
3

Use apenas --exclude '/\..+' . Isso ignora todos os arquivos que começam com um ponto.

(A parte .+ é para que ela não exclua sua pasta base).

    
por ostrokach 11.07.2015 / 04:51
2

inotifywait apenas verifica os subdiretórios devido ao parâmetro -r .
Chame de sem esse parâmetro e ele não assistirá a subdiretórios.

    
por Jan 02.11.2014 / 18:54

Tags