find . -name 'foo-exclude-me' -prune -o -name 'foo*' -print
Sem -print
, a ação padrão implícita se aplica a todas as correspondências, mesmo as limpas. O -print
explícito se aplica somente nas condições especificadas, que são -name 'foo*'
apenas na outra ramificação de -name 'foo-exclude-me'
.
Em geral, use um -print
explícito sempre que você estiver fazendo algo mais complexo do que uma conjunção de predicados.
Sua segunda tentativa com ! -path './foo-exclude-me/*'
não funcionou porque ./foo-exclude-me
não corresponde a ./foo-exclude-me/*
(sem /
). Adicionar ! -path ./foo-exclude-me
funcionaria.