Como Encontrar um Arquivo no Linux Usando o Comando Find

O comando find do Linux é um dos comandos mais importantes e úteis nos sistemas Linux. Ele pode, como o nome sugere, encontrar arquivos no seu PC Linux com base em praticamente quaisquer condições e variáveis que você definir. Você pode encontrar arquivos por permissões, usuários, grupos, tipo de arquivo, data, tamanho e outros critérios possíveis usando o comando find. Aqui mostramos como encontrar um arquivo no Linux usando o comando find.
O comando find está disponível na maioria das distribuições Linux por padrão, então você não precisa instalar um pacote para isso.
Leia também: Usando os comandos find, locate, which e whereis para buscar arquivos no Linux
Encontrar Arquivos pelo Nome nas Diretórios Atuais
A maneira mais óbvia de pesquisar arquivos é pelo nome. Para encontrar um arquivo pelo nome no diretório atual, execute:
find . -name photo.png
Se você quiser encontrar um arquivo pelo nome que contém letras maiúsculas e minúsculas, execute:
find . -iname photo.png
Se você quiser encontrar um arquivo no diretório raiz, prefixe sua busca com sudo, que lhe dará todas as permissões necessárias para fazê-lo, e também o símbolo /, que informa ao Linux para buscar no diretório raiz. Finalmente, a expressão -print exibe os diretórios dos seus resultados de busca. Se você estivesse procurando por Gzip, você digitaria:
sudofind/-namegzip-print
Leia também: Como Encontrar Arquivos Grandes no Linux
Encontrar Arquivos em um Diretório Específico
Se você quiser encontrar arquivos em um diretório específico como “/home”, execute:
find/home -name filename.txtSe você quiser encontrar arquivos com a extensão “.txt” no diretório “/home”, execute:
find/home -name"*.txt"Para encontrar arquivos cujo nome é “test.txt” em múltiplos diretórios como “/home” e “/opt”, execute:
find/home /opt -name test.txtPara encontrar arquivos ocultos no diretório “/home”, execute:
find/home -name".*"Para encontrar um único arquivo chamado “test.txt” e removê-lo, execute:
find/home -type f -name test.txt -execrm-f{}Para encontrar todos os arquivos vazios no diretório “/opt”, execute:
find/opt -type f -emptyEncontrar Diretórios Usando Nome
Se você quiser encontrar todos os diretórios cujo nome é “testdir” no diretório “/home”, execute:
find/home -type d -name testdirPara encontrar todos os diretórios vazios no “/home,” execute:
find/home -type d -emptyEncontrar Arquivos com Certas Permissões
O comando find pode ser usado para encontrar arquivos com uma permissão específica usando a opção perm.
Para encontrar todos os arquivos cujas permissões são “777” no diretório “/home”, execute:
find/home -type f -perm 0777 -printPara encontrar todos os arquivos sem permissão “777,” execute:
find . -type f !-perm777Para encontrar todos os arquivos somente leitura, execute:
find/home -perm/u=rPara encontrar todos os arquivos executáveis, execute:
find/home -perm/a=xPara encontrar todos os arquivos com o bit sticky definido cujas permissões são “553,” execute:
find/home -perm1553Para encontrar todos os arquivos SUID definidos, execute:
find/home -perm/u=sPara encontrar todos os arquivos cujas permissões são “777” e mudar suas permissões para “700,” execute:
find/home -type f -perm 0777 -print-execchmod700{} ;Encontrar Arquivos e Diretórios com Base na Data e Hora
Para encontrar todos os arquivos no “/opt” que foram modificados 20 dias atrás, execute:
find/opt -mtime20Para encontrar todos os arquivos no “/opt” que foram acessados vinte dias atrás, execute:
find/opt -atime20Para encontrar todos os arquivos no “/opt” que foram modificados há mais de 30 dias e menos de 50 dias atrás:
find/opt -mtime +30-mtime-50Para encontrar todos os arquivos no “/opt” que foram alterados nas últimas duas horas, execute:
find/opt -cmin-120Encontrar Arquivos e Diretórios com Base no Tamanho
Para encontrar todos os arquivos de 10MB no diretório “/home”, execute:
find/home -size 10MPara encontrar todos os arquivos no diretório “/home” que são maiores que 10MB e menores que 50MB, execute:
find/home -size +10M -size-50MPara encontrar todos os arquivos “.mp4” no diretório “/home” com mais de 10MB e excluí-los usando um único comando, execute:
find/home -type f -name*.mp4 -size +10M -execrm{} ;Como você pode ver, o comando find é incrivelmente útil para administrar um sistema, procurar em diretórios para encontrar arquivos e, geralmente, podar a árvore de diretórios virtual no Linux. Se você gostou deste artigo sobre Linux, não deixe de conferir alguns dos nossos outros conteúdos sobre Linux, como como usar o comando scp para transferir arquivos com segurança, como usar o nnn como um gerenciador de arquivos no terminal e como corrigir pacotes quebrados.