Quando se trata de encontrar arquivos e pastas eficientemente em um sistema Linux, existem dois comandos principais disponíveis: find e locate. Ambos têm suas próprias forças e casos de uso. Neste guia, você aprenderá como usar esses comandos para encontrar rapidamente e de forma direcionada os dados necessários, seja no diretório home ou em todo o disco rígido.
Principais conclusões
- locate é mais rápido, pois utiliza um banco de dados, mas pode não estar atualizado.
- find pesquisa diretamente no disco rígido e está sempre atualizado, mas pode ser mais lento.
- Ambos os comandos oferecem várias opções para refinar suas buscas.
Guia passo a passo
1. Uma visão geral: locate
Comece sua busca com o comando locate. Isso é especialmente simples se você conhece o nome exato ou parte do nome do arquivo. Suponha que você queira encontrar o arquivo "Sol". Acesse seu diretório raiz e digite o seguinte comando:
locate Sol
Com este comando, locate irá pesquisar todas as entradas no banco de dados e listar os arquivos que contêm o termo de busca "Sol".

2. Ignorar maiúsculas e minúsculas
Você deseja ignorar maiúsculas e minúsculas em sua busca? Então você pode usar a opção -i:
locate -i sol
Dessa forma, você obterá uma lista que contém tanto "Sol" quanto "sol".

3. Precisão com expressões regulares
Se você deseja realizar uma busca mais precisa, pode usar expressões regulares com locate. Por exemplo, para buscar exatamente por "ls", você pode usar a opção -b em combinação com parênteses protegidos:
locate -b '/ls'
Isso garantirá que você receba apenas resultados que correspondem exatamente a "ls".

4. Atualizar o banco de dados
Se você criou um novo arquivo e deseja garantir que locate o encontre, você precisa atualizar o banco de dados. Você faz isso com o comando:
sudo updatedb
Este comando atualiza o banco de dados e o mantém em dia.

5. Usando find
O comando find é especialmente útil quando você deseja definir critérios mais específicos para sua busca. Por exemplo, para buscar um arquivo chamado "xyz" no diretório home, você pode usar o seguinte comando:
find ~/ -name 'xyz'
Isso pesquisa apenas no diretório home por "xyz".

6. Filtrar por tipo de arquivo
Para buscar apenas por tipos de arquivos específicos, você pode usar a opção -type. Por exemplo, para encontrar apenas diretórios:
find /var/log -type d
Com esse comando, você listará todos os diretórios no diretório /var/log.

7. Procurar arquivos por tamanho
Se você deseja buscar arquivos com base em seu tamanho, pode usar a opção -size. Por exemplo, para encontrar arquivos maiores que 1 MB:
find / -type f -size +1M
Este comando pesquisa em todo o sistema por arquivos que são maiores que 1 megabyte.

8. Encontrar arquivos em um determinado período
Você também pode procurar arquivos que foram modificados dentro de um determinado período. Por exemplo, se você deseja encontrar arquivos que foram modificados nas últimas 48 horas, use:
find / -type f -mtime -2
Aqui, "-mtime -2" refere-se a arquivos que foram modificados nos últimos dois dias.

9. Combinações de critérios de busca
A combinação de vários critérios de busca melhora a precisão de suas consultas. Você pode filtrar por tipo de arquivo e data de modificação ao mesmo tempo:
find /opt -type f -mtime -1
Dessa forma, você encontra todos os arquivos no diretório /opt que foram modificados nas últimas 24 horas.

10. Conclusão sobre a busca de arquivos
Com os comandos find e locate, você está bem equipado para encontrar eficientemente arquivos e pastas em seu sistema Linux. Você pode escolher entre velocidade e uma base de dados atual, dependendo de suas necessidades.
Resumo – Buscando arquivos e pastas no Linux – find e locate em detalhes
Encontrar arquivos e pastas no Linux é fácil com find e locate. Ambos os comandos oferecem diferentes formas de personalizar sua busca.
Perguntas frequentes
Qual é a diferença entre find e locate?find pesquisa em tempo real no disco rígido, enquanto locate usa um banco de dados e, portanto, é mais rápido, mas pode não fornecer resultados atualizados.
Como atualizo o banco de dados do locate?Com o comando sudo updatedb você pode atualizar o banco de dados do locate.
Posso usar find para buscar por tamanho de arquivo?Sim, isso é possível usando a opção -size.
Como posso restringir minha busca por nomes de arquivos ou pastas?Use as opções -name ou -type para buscar especificamente por certos nomes ou tipos de arquivos.
Qual é um exemplo de uma combinação de critérios de busca?Você pode usar find para buscar arquivos do tipo -type f e ao mesmo tempo especificar que os arquivos foram modificados nas últimas 24 horas com -mtime -1.