find: excluindo um subdir sob OSX

1

Gostaria de lançar uma localização em um diretório excluindo um subdiretório dele. Eu encontrei dois exemplos muito diferentes no google e já que os dois nem sequer tentam trabalhar, eu suponho que seja algo diferente do OSX, ou estou fazendo algo estranho.

Eu gostaria de fazer:

find here/ -name '*.xxx' -BUTNOT here/there/ -exec stuff {} \;

Usando os exemplos que eu tentei, recebi um erro ou 0 correspondências ou todas as correspondências.

Talvez eu precise excluir mais de um subdiretório.

    
por o0'. 17.02.2011 / 18:31

1 resposta

3

Infelizmente, não tenho o OS X disponível no momento, mas pelo menos no Linux isso funciona:

find . -name \*.xxx -o -path ./path/to/exclude -prune ...

Para remover mais de um diretório, repita todo o padrão -o -path ... -prune :

find . -name \*.xxx -o -path ./path/to/exclude1 -prune -o -path ./path/to/exclude2 -prune ...
    
por 17.02.2011 / 18:39