O 'find' suporta múltiplas condições 'maxdepth'?

3

Eu quero executar uma pesquisa find com vários maxdepth s, dependendo do diretório.

Isso é possível? Parece que -maxdepth é "global", mas fiquei curioso para saber se há alguma solução alternativa.

(Estou ciente de que é possível executar dois comandos separados, mas usar um seria mais rápido e manteria o código de chamada mais simples)

    
por Marcus 10.09.2017 / 17:39

2 respostas

7

Você pode emulá-lo usando -prune em diferentes nomes de caminhos correspondentes. Por exemplo, para corresponder /etc à profundidade 1 e /lib à profundidade 2:

find /etc /lib/ \
    \( -regex '/etc/[^/]*/.*'       -prune \) \
 -o \( -regex '/lib/[^/]*/[^/]*/.*' -prune \) \
 -o -print

Você precisa ter o cuidado de adicionar a última linha para imprimir ou de outra forma operar nos arquivos e diretórios restantes.

    
por 10.09.2017 / 18:48
5

Não, você não pode aplicar diferentes opções de -maxdepth a diferentes partes de uma série de find testes. Como é uma opção global, como você indica, isso se aplica a todos os testes. Se você especificar várias opções -maxdepth , a última será levada em conta e aplicada ao comando inteiro.

    
por 10.09.2017 / 17:55

Tags