Você pode usar a opção -prune desta maneira:
find ~ -path '*Trash*' -prune -or -name ".hg" -or -name ".git"
Então, estou tentando encontrar todos os repositórios do Mercurial no meu diretório pessoal
$ find ~ -name ".hg" -or -name ".git"
Isso funciona bem, mas encontra muito no subdiretório ~ / .local / share / Trash
Como faço para ignorar isso? Obviamente, há o grep -v, mas seria melhor não procurar o Lash.
Você pode usar a opção -prune desta maneira:
find ~ -path '*Trash*' -prune -or -name ".hg" -or -name ".git"