Usando os comandos find, locate, which e whereis para buscar arquivos no Linux

Bg1

Existem algumas maneiras de encontrar e localizar arquivos a partir do terminal no Linux, e find, locate, which e whereis são alguns dos comandos comumente usados para isso. Vamos dar uma olhada nesses quatro comandos de busca, suas semelhanças e diferenças.

1. find

A abordagem direta para buscar arquivos dentro de qualquer diretório especificado é usar o comando find. Se o diretório para realizar a busca não for explicitamente especificado, a busca será realizada no diretório atual.

A captura de tela a seguir mostra como, dentro do diretório atual (.), uma busca é realizada por todos os nomes de arquivos que terminam com a extensão .txt.

Compare Find

A busca também pode ser realizada com base em timestamps, permissões de arquivo, tamanho de arquivo, tipo de arquivo, proprietário do arquivo, etc. Expressões regulares podem ser usadas para controlar os parâmetros de busca. Instruções mais detalhadas sobre o comando find podem ser encontradas aqui.

2. locate

Este comando é outra maneira de encontrar arquivos pelo nome. O comando anterior busca no diretório especificado e, em seguida, fornece os resultados ao usuário. Esta ferramenta realiza a busca contra um banco de dados chamado “mlocate.db,” que está localizado em “/var/lib/mlocate/mlocate.db.” Este banco de dados é atualizado todas as manhãs pelo utilitário cron.

O comando é executado mais rapidamente do que find porque a busca é contra um banco de dados existente que já curou a lista de todos os arquivos e diretórios no sistema.

locate seguido pelo nome do arquivo exibe o nome do caminho absoluto onde esse arquivo existe.

Vamos supor que um script foi criado no diretório home.

Se tentarmos localizar o script recém-criado e copiado, não obteremos nenhuma saída.

locate myscript

Como o cron só atualiza o banco de dados pela manhã, quaisquer arquivos adicionados ao sistema durante o dia precisam ter o banco de dados atualizado manualmente. Isso pode ser feito usando o comando updatedb.

sudoupdatedb

Se tentarmos “localizar” o script personalizado, ele será capaz de localizar o arquivo.

3. which

Após discutir comandos para buscar arquivos, vamos mudar para um comando que pode ajudar a buscar o caminho absoluto de executáveis no sistema: which.

Um executável/script/binário pode estar presente em múltiplas localizações no sistema. which busca nos diretórios especificados nas variáveis de ambiente $PATH e $MANPATH pela existência do executável especificado.

Sem quaisquer opções, which exibe o primeiro caminho absoluto encontrado para um executável.

A opção -a exibe todas as ocorrências de caminhos absolutos encontrados para o executável especificado.

Os caminhos absolutos para múltiplos executáveis podem ser encontrados especificando os executáveis um após o outro.

4. whereis

whereis é outro comando e é usado para obter três informações sobre um executável:

  • caminho absoluto do binário
  • caminho absoluto onde o código fonte desse binário existe no sistema
  • caminho absoluto do manual que existe para esse binário

Para “bzgrep,” o binário existe em “/bin,” e o manual existe em “/usr/share/man/man1.” Seu código fonte não existe no sistema.

whereis pode ser instruído a buscar apenas o caminho absoluto do binário usando a opção -b. A busca pode ser realizada apenas nos diretórios listados após a opção -B. Nomes após -f especificam todos os binários para os quais as informações precisam ser obtidas.

Da mesma forma, a busca pode ser restrita apenas ao código fonte ou apenas a manuais, usando as opções -s e -m. -S e -M seguidos pelos nomes dos diretórios especificam os diretórios para buscar código fonte e manuais, respectivamente.

A opção -l fornecerá uma listagem detalhada dos caminhos absolutos de todos os diretórios usados pelo whereis para realizar a busca.

Compare Which Listing

Conclusão

Não faltam ferramentas para você encontrar e localizar arquivos no terminal. Espero que agora você tenha uma boa ideia sobre as quatro ferramentas de busca úteis nos sistemas Linux. Se você precisar de mais detalhes sobre seu uso, pode conferir suas páginas de manual para uma documentação detalhada.