Se você está iniciando agora no mundo Linux, já deve ter se deparado com a situação de ter que localizar arquivos no Sistema operacional. Portanto, neste post eu vou te ajudar a decidir qual vai ser o melhor comando para localizar arquivos no Linux , find, locate ou whereis.
O Comando Find
Eu já escrevi um post falando especificamente sobre o comando find. Mas não tem problema vou resumir novamente como ele funciona.
O comando find vai ser utilizado quando você quer definir parâmetros para sua pesquisa. O find possui muito mais opções e parâmetros de pesquisas do que o comando locate, como por exemplo, com ele é possível pesquisar por tamanho do arquivo, nome, data de criação, inclusive, especificar o diretório de busca. Desta forma, o comando find possui uma pesquisa mais refinada e com critérios definidos.
Entretanto, o comando find se torna um pouco mais lento quando comparado ao comando locate, pois, ele escaneia cada subdiretorio da pesquisa para achar o arquivo desejado.
O comando Locate
O comando Locate também é um comando para localizar arquivos no Linux e utiliza um banco de dados indexado de todos os arquivos do sistema.
Este banco de dados é atualizado diariamente com o comando cron, ou manualmente com o comando updatedb.
Quando utilizamos o locate, ele faz uma busca dentro do banco de dados compilado, se tornando assim mais rápido que o comando find. Por isso é importante sempre antes de utilizar o comando locate, executar o comando updatedb.
É útil também, quando você busca localizar todos os arquivos que estão espalhados por vários diretórios desconhecidos. Basicamente, o comando locate te retorna tudo relacionado ao nome que você pesquisou.
O comando Whereis
O comando Whereis é mais simples do que imagina!
Este comando te retorna onde estão os programas executáveis que você deseja:
Não só isso, o comando whereis
traz também a página man do executável.
Afinal, qual o melhor comando para localizar arquivos no Linux?
Depende da sua necessidade.
O melhor comando para localizar arquivos no Linux será aquele que atender melhor sua necessidade no momento, ou seja, caso uma pesquisa (ou várias) mais rápida em um servidor muitos arquivos, então utilize o updatedb e em seguida pesquise com o locate.
Caso você queira realizar uma pesquisa mais refinada, com formato, data de modificação ou outros filtros, utilize o comando find.
Por fim, se deseja saber a origem de um executável utilize o comando whereis.