você está aqui: Home  → Arquivo de Mensagens

find - limitando o escopo da busca

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 12 de novembro de 2014

Algumas vezes, quando usamos o comando find, precisamos limitar o escopo da busca na árvore de diretórios. Isto pode ser feito especificando os parâmetros maxdepth e mindepth. Vejamos alguns exemplos:

  find . -name passwd -maxdepth 2

O comando acima irá procurar por arquivos de nome passwd no diretório corrente e nos diretórios que estão um nível abaixo. O número 1 se aplica ao diretório corrente e o número 2 indica um nível abaixo:

dir 1 - diretório corrente (maxdepth=1) → dir 2 (maxdepth=2) → dir 3 (maxdepth=3) etc.

Vamos criar um ambiente de testes para explicar melhor:

  mkdir -p a/b/c/d/e/f/g/h
  
  for dir in `find . -type d`
  do
    touch $dir/passwd
  done

Criei com os comandos acima uma árvore de diretórios e em seguida criei, em cada um dos diretórios, um arquivo vazio chamado passwd.

  find . -maxdepth 1 -name passwd
  ./passwd

No exemplo acima, a busca se limita ao diretório corrente.

  find . -maxdepth 5 -name passwd
  ./a/b/passwd
  ./a/b/c/d/passwd
  ./a/b/c/passwd
  ./a/passwd
  ./passwd

Com o uso da diretiva mindepth podemos sofisticar ainda mais a nossa busca:

  find . -maxdepth 5 -mindepth 3 -name passwd
  ./a/b/passwd
  ./a/b/c/d/passwd
  ./a/b/c/passwd

Esta busca irá começar a partir do nível 3 (a/b) e irá apenas até o nível 5 (a/b/c/d/). Importante lembrar que a contagem sempre se inicia no diretório corrente.



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

Celso
12 Nov 2014, 09:27
Muito boa esta dica.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script