Exclusões ancoradas com find ou fd

Exclusões ancoradas com find ou fd

Digamos que eu queira encontrar todos os arquivos em um diretório (recursivamente), mas omitir aqueles, por exemplo, in .gite node_modulessubdiretórios. Eu posso fazer:

$ fd -uut f -E .git -E node_modules

Mas isso irá, por exemplo, excluir ./some/dir/node_modules/*ou algo assim.

Nesse caso, provavelmente está tudo bem, mas não quero considerar sempre que preciso encontrar algo se a pesquisa não ancorada servirá. Sem falar que em alguns casos isso não acontecerá.

Como excluo ./dir, mas não ./**/dir?

Responder1

Para diferenciar os dois casos, faça uso do -pathpredicado:

$ find . -path ./a -prune -o -type f -print

informação relacionada