Nota: Este artigo foi publicado originalmente em 2013. Alguns passos, comandos ou versões de software podem ter mudado. Consulte a documentação atual das Man Pages para as informações mais recentes.

Neste guia passo a passo, você aprenderá a encontrar um arquivo no Ubuntu usando critérios complexos (ou não).

Como: Encontrar um arquivo no Ubuntu usando critérios complexos (ou não)

Às vezes você precisa encontrar um arquivo e tudo que sabe é a extensão ou o início do nome do arquivo. Uma busca poderosa e flexível para procurar em todos os subdiretórios por arquivos que correspondam a um critério é importante. O Ubuntu vem com esse comando que permite procurar por um nome de arquivo exato ou usar um caractere curinga para especificar um critério. Cobriremos apenas o básico, mas saiba que o comando find tem mais opções para especificar critérios mais concretos se você desejar.

Usuários do Windows acharão que o comando find é o mais parecido com o comando dir (que eu continuo tentando usar mesmo não estando em um Windows Server aqui… rs).

Aqui está a sintaxe: find

find / -type f -iname "MeuArquivo.Ext" é usado quando você sabe o nome exato. Substitua MeuArquivo.Ext pelo nome do seu arquivo.

find / -type f -iname "MeuArqu*" se você quiser encontrar mais arquivos com um caractere curinga.

Evite a opção -type se quiser buscar diretórios etc.

Aqui estão alguns exemplos para ajudá-lo a usar o find em cenários comuns:

Cenários básicos:

I. Encontrar todos os arquivos Zip em um diretório

find /home -name '*.zip'

II. Encontrar todos os arquivos MP3 e AAC em um diretório

find /home/MinhaMusica -name '*.mp3' -o -name '*.aac'

III. Encontrar todos os arquivos MP3 e AAC em um diretório usando busca sem diferenciar maiúsculas/minúsculas

find /home/MinhaMusica -iname '*.Mp3' -o -iname '*.aAc'

Cenários com critérios combinados:

IV. Encontrar todos os filmes que usam mais de 500 MB de espaço

find /home/ -iname '*.avi' -o -iname '*.mpeg' -a -size +500M

V. Encontrar todos os backups grandes feitos nas últimas 2 semanas

find /home/ -iname '*.zip' -o -iname '*.bak' -a -size +300M -mtime -14

Canalizar a saída para executar uma ação no conjunto de resultados

Nos exemplos a seguir, observe o seguinte:

  • ’{}’ corresponde ao arquivo que foi encontrado
  • ’ ;’ termina a instrução exec. Note que há um espaço antes da barra.

VI. Encontrar todos os diretórios e configurar suas permissões para 755

find /usr/share/MeuSiteWP/ -type d -exec chmod 755 {} \;

VII. Encontrar todos os arquivos e configurar suas permissões para 644

find /usr/share/MeuSiteWP/ -type f -exec chmod 644 {} \;

VIII. Encontrar todos os arquivos de backup grandes (maiores que 300 MB neste caso) com mais de 14 dias e movê-los para uma nova pasta

find /home/ -iname '*.zip' -o -iname '*.bak' -a -size +300M -mtime +14 -exec mv '{}' /meu/arquivo/backups/ \;


Aqui está uma cópia da página man do find:

FIND(1)								       FIND(1)

NOME

       find - buscar arquivos em uma hierarquia de diretórios

SINOPSE

       find

DESCRIÇÃO

       Esta página do manual documenta a versão GNU do find. O GNU find busca
       na árvore de diretórios enraizada em cada nome de arquivo fornecido, avaliando a
       expressão dada da esquerda para a direita, de acordo com as regras de precedência
       (veja a seção OPERADORES), até que o resultado seja conhecido (o lado esquerdo
       é falso para operações and, verdadeiro para or), nesse ponto o find passa
       para o próximo nome de arquivo.

       Se você está usando o find em um ambiente onde a segurança é importante
       (por exemplo, se você está usando-o para procurar diretórios que são graváveis
       por outros usuários), você deve ler o capítulo "Considerações de Segurança"
       da documentação do findutils, que se chama Finding Files e vem com o findutils.

Resumo

Você aprendeu com sucesso a encontrar um arquivo no Ubuntu usando critérios complexos (ou não). Se encontrar algum problema, verifique os pré-requisitos e certifique-se de que seu ambiente está configurado corretamente.

Artigos Relacionados