fbpx Certificação Linux: Comando find no Linux (localizar arquivos) [Guia Básico]

Blog

Comando find no Linux (localizar arquivos) [Guia Básico]

📅 01/01/2019 ⏱ 3 min ✍️ Uira Ribeiro
Linuxcomandos
Comando find no Linux (localizar arquivos) [Guia Básico]

O comando find procura por arquivos e diretórios diretamente no sistema de arquivos. Dependendo do tamanho do sistema de arquivos, esse comando pode ser muito demorado.

Sua sintaxe básica é:

$ find [caminho] [expressão]

Você deve indicar um ponto de início da busca na árvore de diretórios do Linux. Se quiser que ele comece no raiz, indique "/". Se quiser que a busca inicie a partir do diretório corrente, use como caminho "./" ou simplesmente ponto ".". 

O find permite uma infinidade expressões como opções de busca, tais como nome, tamanho, data de criação de arquivo, data de acesso, por tipo de arquivo, permissões, etc.

Exemplos:

Procura pelo arquivo texto.txt a partir do raiz (/), do tipo arquivo (f):

$ find / -name texto.txt -type f  

Procura por todos os arquivos com extensão .txt a partir do diretório corrente (.):  

$ find . -name “*.txt”

Procura pelo diretório “usuarios” a partir do diretório corrente, independente se está escrito com letras maiúsculas ou minúsculas:

$ find . -iname usuarios -type d   

Procura por arquivos que não terminam com .html a partir do diretório corrente:

$ find . -type f -not -name “*.html”

O find também permite executar um comando com a lista de arquivos que ele encontrar. Neste exemplo o find copia todos os arquivos .mp3 encontrados a partir do diretório corrente para /tmp:

$ find . -type f -name “*.mp3” -exec cp {} /tmp/ \;

Apaga todos os diretórios BACKUP encontrados a partir do diretório corrente:

$ find . -type d -name BACKUP -exec rm -r {} \;

Procura os arquivos modificados nos últimos 7 dias:

$ find . -mtime -7 -type f

Procurar arquivos editados antes de 5 dias

$ find -mtime +5

Apaga os arquivos de backup com mais de 15 dias:

$ find /backup/ -type f -mtime +15 -exec rm -f {} \;

Apaga todos os arquivos objeto encontrados a partir diretório corrente:

$ find . -name "*.o" -type f -exec rm -f {} \;

Copia todos os arquivos alterados nos últimos 2 dias para o diretório /tmp:

$ find . -type f -mtime -2 -exec cp {} /tmp \;

Também é possível procurar por um arquivo mais recente que um determinado arquivo:

$ find -newer arquivo-fonte.c

Procura arquivos com permissão 0777:

$ find . -type f -perm 0777 –print

Procura todos os arquivos com mais de 50Mb:

$ find / -size +50M 

Pode-se combinar as opções, como para procurar arquivos com extensão .php alterados nas últimas 48 horas:

$ find -name '*.php' -mtime -2

O find também pode ser usado para criar uma lista dos arquivos de um diretório, que pode ser ordenada com o comando sort:

$ find | sort../CapituloForm.php./CapituloList.php./Form.php./List.php./SubcapituloForm.php./SubcapituloList.php

Conclusão

O comando find é uma ferramenta poderosa para encontrar arquivos, diretórios, baseados em nome, permissões, atributos, tamanho, propriedade (por usuário ou por grupo), etc. Ele pode ser usado para varrer o sistema para encontrar programas com permissões de suid, corrigir permissões, fazer backup, etc.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp