Na pesquisa por um find semelhante solução Descobri a explicação útil em Como usar a opção '-prune' de 'find' em sh? por < href="https://stackoverflow.com/users/90848/laurence-gonsalves"> Laurence Gonsalves .
Você poderia usar algo como:
find . \( -type d -name .hg -prune \) -o \( -type f -name "foo" -print \)
ou (sem o nome)
find . \( -type d -name .hg -prune \) -o \( -type f -print \)
Os parênteses (com escape) \( e \) agrupam os testes ( type e name ) e as ações correspondentes ( prune e print , respectivamente) juntos à esquerda e à direita da OR ( -o ).
Como -o tem precedência menor que a justaposição, você pode omitir os parênteses, se desejar. Muitas implementações de find também permitem ignorar o% final -print .
find . -type d -name .hg -prune -o -type f -name "foo" -print