A -depth
(e -delete
implica -depth
), -prune
, -maxdepth <n>
, -depth [+-]<n>
, -follow
(agora substituída pela opção -L
), -quit
,% co_de Os predicados%, -exit
/ -xdev
(nem todas as implementações suportam todos eles) são os únicos que afetam a passagem do diretório.
Aqui, em vez de
... ! -path '*/whatever/*' ...
Você pode fazer:
... \( ! -name whatever -o -prune \) ...
Ou se você também quiser excluir -mount
(que whatever
não possui):
... -name whatever -prune -o \( ... \)
Esses teriam que ser inseridos antes de predicados como ! -path '*/whatever/*'
.
Isso também evita os problemas pelos quais -type f
não corresponde à seqüência de bytes que não se traduzem em caracteres em algumas localidades e em algumas implementações (como o GNU *
nas localidades mais comuns).
Então, para o seu exemplo:
find "/home/../.." \( ! -name FolderName -o -prune \) -type f -print
Ou:
find "/home/../.." -name FolderName -prune -o \( -type f -print \)
(note que ele exclui todos os arquivos chamados find
mesmo aqueles que não são do tipo diretório ).