De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

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.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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