Como Encontrar um Arquivo no Linux Usando o Comando Find

Recurso de Busca

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

Encontrar Foto

Se você quiser encontrar um arquivo pelo nome que contém letras maiúsculas e minúsculas, execute:

find . -iname photo.png

Encontrar Iname Foto

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

Encontrar Gzip

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.txt

Se 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.txt

Para 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 -empty

Encontrar 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 testdir

Para encontrar todos os diretórios vazios no “/home,” execute:

find/home -type d -empty

Encontrar 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 -print

Para encontrar todos os arquivos sem permissão “777,” execute:

find . -type f !-perm777

Para encontrar todos os arquivos somente leitura, execute:

find/home -perm/u=r

Para encontrar todos os arquivos executáveis, execute:

find/home -perm/a=x

Para encontrar todos os arquivos com o bit sticky definido cujas permissões são “553,” execute:

find/home -perm1553

Para encontrar todos os arquivos SUID definidos, execute:

find/home -perm/u=s

Para 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 -mtime20

Para encontrar todos os arquivos no “/opt” que foram acessados vinte dias atrás, execute:

find/opt -atime20

Para 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-50

Para encontrar todos os arquivos no “/opt” que foram alterados nas últimas duas horas, execute:

find/opt -cmin-120

Encontrar Arquivos e Diretórios com Base no Tamanho

Para encontrar todos os arquivos de 10MB no diretório “/home”, execute:

find/home -size 10M

Para encontrar todos os arquivos no diretório “/home” que são maiores que 10MB e menores que 50MB, execute:

find/home -size +10M -size-50M

Para 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.