Como encontro (ou excluo) todos os diretórios e subdiretórios correspondentes a um determinado padrão (no Linux)?

17

Estou tentando usar o comando Linux find para encontrar todos os diretórios e subdiretórios que não possuam .svn (pastas ocultas do Subversion) em seu caminho. Eu só posso obtê-lo para excluir os próprios diretórios .svn, mas nenhum dos subdiretórios.

Aqui está o que estou fazendo agora:

find . -type d \! -iname '*.svn*'

Eu também tentei:

find . -type d \! iname '.svn' \! iname '.svn/*'

Apenas um FYI, estou tentando usar o padrão de localização para aplicar algumas propriedades de subversão a todos os diretórios do repositório, excluindo as pastas ocultas de subversão e seus subdiretórios (aplicando o comando exec aos diretórios retornados de o comando find) ..

TIA

    
por Jason Down 29.06.2009 / 17:23

5 respostas

24
find . -type d -not \( -name .svn -prune \)
    
por 29.06.2009 / 17:26
6

E simplesmente

find . -type d |  grep -v '.svn'
    
por 29.06.2009 / 17:29
6

E a opção -path para encontrar?

find . -type d ! -path '*.svn*'
    
por 29.06.2009 / 17:32
2

encontre. -path './tmp' -prune -o .......

    
por 19.08.2010 / 14:31
2

Você pode usar:

find . -type d -not -wholename '*.svn*' 
    
por 29.07.2010 / 20:35