Exclui pasta usando o comando 'find'

6

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.

    
por smokinguns 13.05.2011 / 00:47

2 respostas

10
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 .

    
por 13.05.2011 / 01:08
0

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 \)
    
por 13.05.2011 / 01:06

Tags