find $HOME -path $HOME/.Trash -prune -o -name test1 -type d -print
Ao usar explicitamente -print
, você evita a impressão espúria de .Trash
.
Estou usando o comando find
em um Mac para procurar uma pasta chamada test1
. Agora a pasta test1
pode estar presente na pasta .Trash
também. Como eu excluo a pasta .Trash
de ser reportada nos resultados da pesquisa ou basicamente qualquer pasta que eu queira excluir?
$ find $HOME -name test1 -type d
/Users/theuser/.Trash/test1
/Users/theuser/test1
/Users/theuser/Downloads/test1
Eu quero que o resultado seja apenas
/Users/theuser/test1
/Users/theuser/Downloads/test1
Eu usei grep
:
find $HOME -name test1 -type d | grep -v '.Trash'
para filtrar o resultado .Trash
, mas estou interessado em saber se usar find
sozinho obtém os mesmos resultados.
Use o -prune
primary:
find $HOME -name .Trash -prune -o -name test1 -type d
Editar:
Isso incluirá .Trash na saída. Para corrigir isso:
find $HOME -name .Trash -prune -o \( -name test -type d -print \)