Como Usar os Comandos Locate e Find Linux para Encontrar Qualquer Arquivo

Se você está usando o Linux pela primeira vez, talvez não saiba muito bem como procurar arquivos e pastas no seu computador. Existem dois comandos Linux para fazer isso: o find e o locate

Embora ambos os comandos tenham a mesma função, eles funcionam de maneiras diferentes. O comando Linux findprocurará pelos arquivos especificados em todos os diretórios do seu computador. Enquanto isso, o locate command procurará arquivos apenas no seu banco de dados Linux. 

Este artigo explicará como usar os comandos find e locate no Linux as razões para usá-los.

O Que São os Comandos Find e Locate no Linux

No Linux, o comando find é uma ferramenta versátil para procurar arquivos e diretórios com base em vários critérios, como nome, tipo e tamanho, com resultados gerados em tempo real. O comando locate, por outro lado, é uma opção mais rápida que se baseia em um banco de dados pré-construído para pesquisas rápidas de arquivos, mas pode não fornecer atualizações em tempo real.

Uma coisa importante a se notar é que estaremos usando um VPS Ubuntu neste guia. Dito isto, as etapas também funcionarão no Debian, CentOS ou qualquer outra distribuição do Linux, seja qual for o sistema de arquivos usado. Se você não sabe como se conectar ao seu VPS, pode seguir este guia antes de prosseguir.

Sintaxe do Comando Find

O comando mais popular para encontrar e filtrar arquivos no Linux é o find. A sintaxe básica dele é a seguinte:

find <diretórioinicial> <opções> <termo de pesquisa>

Ele começa com a palavra-chave find, que alerta o Linux de que tudo o que segue depois será usado para encontrar seu arquivo. O argumento <diretórioinicial> é o ponto de origem de onde você deseja iniciar a busca. Você pode substituí-lo por vários argumentos, incluindo:

  • / (barra) — pesquise todo o sistema.
  • . (ponto) — pesquise a partir da pasta em que você está trabalhando atualmente (diretório atual).
  • ~ (til) — para pesquisar a partir da sua pasta inicial.

Dica

Para encontrar o diretório atual em que você está, use o comando pwd.

O segundo argumento, <opções>, é dedicado ao seu arquivo. Ele pode ser o nome do arquivo, tipo, data de criação, etc. O terceiro argumento, <termo de pesquisa>, é onde você especificará o termo de pesquisa relevante.

Exemplos de Comandos Find

Vamos dar uma olhada nas várias opções que o Linux oferece aos seus usuários:

Usando o Find para Pesquisar por Nome

O método mais comum para procurar um arquivo é usando seu nome, naturalmente. Para executar uma consulta de pesquisa simples usando o nome do arquivo, use o comando find assim:

find . -name meu-arquivo

Usamos a opção -name e procuramos por um arquivo chamado meu-arquivo. Note que começamos a busca no nosso diretório atual usando o argumento . (ponto).

Lembre-se de que o argumento -name diferencia maiúsculas e minúsculas no Linux. Se você sabe o nome do arquivo, mas não tem certeza se ele usa maiúsculas ou minúsculas, use o seguinte comando find:

find . -iname meu-arquivo

Você também pode procurar por todos os arquivos que não contêm uma palavra-chave específica em seu nome. Existem duas maneiras de fazer isso. O primeiro método envolve o uso da palavra-chave –not, da seguinte maneira:

find . -not -name meu-arquivo

Além disso, podemos usar o símbolo de exclamação (!). No entanto, você deve precedê-lo pelo identificador de escape (\) para que o Linux saiba que esta é a parte do comando find.

find . \! -name meu-arquivo

Você também pode procurar por vários arquivos com um formato em comum, como .txt:

find . -name “*.txt”

Isso listará todos os arquivos de texto, começando na pasta atual.

Por fim, se você quiser encontrar um determinado arquivo pelo nome e removê-lo, use o argumento  -delete após o nome do arquivo:

find . -name meu-arquivo -delete

Usando Find para Pesquisar por Tipo

O Linux permite que os usuários listem todas as informações com base em seus tipos. Existem vários filtros que você pode usar:

  • d – diretório ou pasta
  • f – arquivo normal
  • l – link simbólico
  • c – dispositivos de caractere
  • b – dispositivos de bloco

Um exemplo simples de busca de um tipo de arquivo é este abaixo:

find / -type d

Isso listará todos os diretórios atuais em seu sistema, pois pesquisamos a partir de nosso diretório raiz com o símbolo / (barra).

Você também pode combinar as opções –type e -name para refinar ainda mais suas pesquisas:

find / -type f -name meu-arquivo

Isso procurará por arquivos chamados meu-arquivo, excluindo diretórios ou links.

Usando Find para Pesquisar por Data e Hora

Este exemplo é ótimo se você deseja procurar arquivos com base no horário de acesso ou modificação. O Linux mantém o controle dos arquivos usando esses três carimbos de data/hora.

  • Horário de Acesso (-atime) – quando o arquivo foi lido ou escrito.
  • Horário de Modificação (-mtime) – quando o arquivo foi modificado.
  • Horário da Alteração (-ctime) – quando os metadados do arquivo foram atualizados.

Você deve usar essa opção com um número que especifica quantos dias se passaram desde que o arquivo foi acessado, modificado ou alterado:

find / -atime 1

Este comando mostrará todos os arquivos que foram acessados um dia antes, a partir do seu horário atual.

Podemos refinar ainda mais nossas consultas adicionando sinais de mais (+) e menos (–) precedendo o número de dias. Por exemplo:

find / -mtime +2

Ele lista todos os arquivos que têm um tempo de modificação de mais de dois dias atrás.

Para encontrar todos os arquivos cujos metadados foram atualizados há menos de um dia, execute o seguinte:

find / -ctime -1

Embora não sejam frequentemente usados, existem alguns argumentos adicionais que também estão relacionados a pesquisas cronometradas. O argumento -mmin procura por arquivos modificados em uma base de minutos. Funciona assim:

find / -mmin -1

Além disso, temos o argumento  -newer, que se usa para comparar a idade de dois ou mais arquivos e exibir o mais recente.

find / -newer meu-arquivo

O resultado exibirá todos os arquivos que foram modificados mais recentemente do que “meu-arquivo”.

Usando Find para Pesquisar por Tamanho

O Linux permite que você procure arquivos com base em seus tamanhos. A sintaxe para procurar arquivos por tamanho é:

find <diretórioinicial> -size <tamanho> <unidade-de-tamanho>

Você pode especificar as seguintes unidades de tamanho:

  • c -bytes
  • k – quilobytes
  • M – megabytes
  • G – gigabytes
  • b – pedaços de 512 bytes

Um exemplo simples de como usar o comando find para tamanhos de arquivos é o seguinte:

find / -size 10M

Aqui procuramos todos os arquivos em seu sistema que têm exatamente 10 megabytes. Assim como ao pesquisar com base no tempo, você pode filtrar suas pesquisas ainda mais usando os sinais de mais e menos:

find / -size +5G

Ele exibirá todos os arquivos que têm mais de cinco gigabytes.

Usando Find para Pesquisar por Propriedade

O Linux permite que você refine suas pesquisas com base na propriedade do arquivo. Para encontrar arquivos de um determinado proprietário, o seguinte comando deve ser executado:

find / -user john

O script retornará uma lista de todos os arquivos que o usuário chamado john possui. Semelhante aos nomes de usuário, também podemos encontrar arquivos através de nomes de grupos:

find / -group trabalho

Usando Find para Pesquisar por Permissões

Os usuários podem procurar arquivos com base nas permissões de arquivo usando a opção -perm. Por exemplo:

find / -perm 644

No Linux, 644 corresponde à permissão de leitura e escrita. Isso significa que este comando procurará todos os arquivos que possuem apenas permissões de leitura e gravação. Você pode explorar mais essa opção:

find / -perm -644

Com a adição de um símbolo de traço, ele retornará com todos os arquivos que têm pelo menos permissão 644.

Leia mais sobre permissões e os códigos correspondentes a todas as outras permissões do Linux.

Outras Opções Úteis do Comando Find

Existem outras opções úteis que você deve ter em mente.

Por exemplo, para procurar arquivos e pastas vazias em seu sistema, use o seguinte:

find / -empty

Da mesma forma, para procurar todos os executáveis salvos no seu disco, utilize a opção -exec:

find / -exec

Para procurar arquivos legíveis, você pode executar o seguinte comando:

find / -read

Como você pode ver, existem muitas opções disponíveis para os usuários personalizarem suas consultas como desejarem. Vamos dar uma olhada no outro comando que pode ser usado para localizar arquivos no Linux.

Sintaxe do Comando Locate

O comando locate é uma alternativa útil, pois ele é mais rápido que o comando find ao realizar pesquisas. Isso ocorre porque o primeiro apenas verifica seu banco de dados Linux em vez de todo o sistema. Além disso, a sintaxe é relativamente mais fácil de escrever.

Aqui, você pode usar o comando para procurar arquivos usando a sintaxe abaixo:

locate [meu-arquivo]

Às vezes, o comando locate padrão pode retornar arquivos que foram excluídos, se o banco de dados não foi atualizado. A melhor solução é atualizar manualmente o banco de dados executando o seguinte:

sudo updatedb

Como Instalar o Pacote Locate

Por padrão, o Linux não vem com o comando locate pré-instalado. Para obter o pacote, execute os seguintes comandos um após o outro:

sudo apt-get update
sudo apt-get install mlocate

Exemplos de Comandos Locate

Compartilharemos com você as aplicações mais comuns do comando locate do Linux.

Usando Locate para Pesquisar o Nome Exato do Arquivo

A sintaxe básica só permite que você procure por arquivos que contêm o termo de pesquisa. Se você quiser obter um arquivo com o seu nome exato, pode usar a opção -r e adicionar o símbolo do cifrão ($) no final do seu termo de pesquisa. Por exemplo:

locate -r meu-arquivo$

Usando Locate para Contar o Número de Arquivos

Para saber quantos arquivos aparecem no resultado da sua pesquisa, insira -c após o comando locate.

locate -c meu-arquivo

Em vez de listar todos os arquivos, ele fornecerá o número total deles.

Usando Locate para Ignorar a Sensibilidade a Maiúsculas e Minúsculas

Use -i no seu comando locate para ignorar a diferença entre maiúsculas e minúsculas na busca. Por exemplo:

locate -i meu-arquivo

Todos os arquivos com este nome serão mostrados, independentemente de quaisquer símbolos maiúsculos ou minúsculos encontrados.

Usando Locate para Mostrar Arquivos Existentes

Assim como mencionamos, o comando locate do Linux pode até mostrar um arquivo excluído se você não atualizou o banco de dados. Felizmente, você pode contornar esse problema usando a opção -e, assim:

locate -e meu-arquivo

Ao fazer isso, você só obterá arquivos que existem no momento em que você executa o comando localizar.

Usando Locate para Desativar Erros Durante a Pesquisa

A opção -q evitará que quaisquer erros apareçam quando a pesquisa estiver sendo processada. Para fazer isso, basta digitar:

locate -q meu-arquivo

Usando o Locate para Limitar o Número de Resultados da Pesquisa

Se você quiser limitar o número de resultados da pesquisa, use a opção -n <número>. No entanto, lembre-se de que você precisa colocar a opção no final da linha de comando. Dê uma olhada neste exemplo:

locate meu-arquivo n 10

O script exibirá apenas os primeiros 10 arquivos que encontrar, mesmo quando houver mais.

Conclusão

Você pode procurar arquivos em seu servidor Linux — seja ele usado para armazenar arquivos, sites ou um e-mail, por exemplo — usando os comandos find e locate. Essas duas poderosas ferramentas têm suas próprias vantagens. Portanto, incentivamos você a experimentar ambos e ver qual deles é mais adequado para seus cenários de uso. Aqui está um breve resumo do que tratamos neste artigo:

  • Use find para procurar arquivos com base em nome, tipo, tempo, tamanho, propriedade e permissões, além de algumas outras opções úteis.
  • Instale e use o comando locate do Linux para realizar buscas mais rápidas por arquivos em todo o sistema. Ele também permite que você filtre por nome, buscas sensíveis a maiúsculas e minúsculas, pasta, e assim por diante.

Se você tiver alguma dúvida, sinta-se à vontade para perguntar nos comentários!

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.