Home / Dicas e Tutoriais / 35 Usos Práticos do Comando Find

35 Usos Práticos do Comando Find

Olá pessoal.

Não tem como memorizar todos os comandos do Linux de uma vez só. Então o melhor a fazer é pesquisar e documentar, para que possamos consultar depois, quando não nos lembrarmos de algum comando, ou parâmetro.

Hoje aqui vou abordar o uso do comando find. Se você deseja ver o manual completo do find, basta digitar “man find” no terminal e ele mostrará o manual da ferramenta. Achei no site do tecmint, um bom resumo de 35 usos deste comando e vou repassar aqui. São exemplos práticos do uso do find.

Sobre o Find

O comando find é um dos comandos usados mais importantes no Linux. Ele é usado para pesquisar e listar arquivos e diretórios com base nas condições especificadas. O find pode ser usado com uma variedade de condições, como encontrar arquivos por permissões, usuários, grupos, tipo de arquivo, data, tamanho e outros critérios possíveis.

Ele pode também filtrar os resultados e então realizar uma ação sobre os arquivos encontrados, como por exemplo encontrar e excluir ou copiar ou fazer o que você desejar.

Para mostrar os 35 comandos find mais usados. Dividi a seção em cinco partes.

  1. Parte I: Encontrar arquivos pelos nomes
  2. Parte II: Encontrar arquivos com base em suas permissões
  3. Parte III: Encontrar arquivos com base em Usuários e Grupos
  4. Parte IV: Encontrar arquivos e diretórios com base na data e hora
  5. Parte V: Encontrar arquivos e diretórios com base no tamanho

Parte I – Encontrar Arquivos Pelos Nomes

Obs. Para você fazer esses exercícios na sua casa, precisará ter os mesmos arquivos de teste que usaremos aqui. Se preferir criá-los para reproduzir melhor o exercício, seria interessante. Eu faria isso com o comando touch para arquivos e mkdir para pastas.

touch receita.txt Receita.txt receita.php login.php index.php
mkdir Receita

1. Encontre arquivos usando o nome na pasta atual

Localizar todos os arquivos cujo nome é receita.txt na pasta de trabalho atual.

find . -name receita.txt

./receita.txt

2. Encontrar arquivos no diretório home

Localizar todos os arquivos dentro da pasta /home  com o nome receita.txt .

find /home -name receita.txt

/home/receita.txt

3. Localizar arquivos usando o nome e Ignorando o “case” (maiúsculas ou minúsculas)

Localizar todos os ficheiros cujo nome é receita.txt e contém letras maiúsculas e minúsculas no diretório /home.

find /home -iname receita.txt

./receita.txt
./Receita.txt

4. Encontrar Diretórios Usando Nome

Localizar todos os diretórios cujo nome é receita em /.

find / -type d -name Receita

/Receita

5. Localizar arquivos por formato. Ex: PHP

Encontrar todos os arquivos php cujo nome é receita.php no diretório de trabalho atual.

find . -type f -name receita.php

./receita.php

6. Localizar todos os arquivos PHP no diretório

Encontrar todos os arquivos php em um diretório.

find . -type f -name "*.php"

./receita.php
./login.php
./index.php

Parte II – Localizar Arquivos Com Base em suas Permissões

Obs. Para saber mais sobre permissões comuns, e permissões especiais, tais como as SGID, SUID e STICKY, consulte este outro artigo abaixo

chmod

7. Localizar arquivos com permissões 777.

find . -type f -perm 0777 -print

8. Encontre arquivos sem permissão 777.

find / -type f ! -perm 777

9. Localizar arquivos SGID com permissões 664.

find / -perm 2644

10. Localizar arquivos “Stick Bit” com permissões 551.

find / -perm 1551

11. Encontrar arquivos SUID.

find / -perm /u=s

12. Encontrar arquivos SGID.

Pesquisar os arquivos SGID .

find / -perm /g=s

13. Encontre Leia arquivos somente

Pesquisar os arquivos somente leitura.

find / -perm /u=r

14. Encontrar arquivos executáveis

Pesquisar os arquivos executáveis.

find / -perm /a=x

15. Encontrar arquivos com 777 permissões e chmod para 644

Encontrar todos os arquivos de permissão 777 e usar comando chmod para definir as permissões para 644.

find / -type f -perm 0777 -print -exec chmod 644 {} \;

16. Encontra Diretórios com Permissões 777 e fazer chmod para 755

Encontrar todos os diretórios com permissão 777 e usar chmod para definir as permissões para 755 .

find / -type d -perm 777 -print -exec chmod 755 {} \;

17. Encontrar e remover um único arquivo

Para encontrar um único arquivo chamado receita.txt e removê-lo.

find . -type f -name "receita.txt" -exec rm -f {} \;

18. Encontrar e remover vários arquivos por extensão

Para localizar e remover vários arquivos, como .mp3 ou .txt , em seguida, usar.

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

Ou

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

19. Encontre todos os arquivos vazios

Para encontrar todos os arquivos vazios sob certo caminho.

find /tmp -type f -empty

20. Encontre todos os diretórios vazios

Para registrar todos os diretórios vazios sob certo caminho.

find /tmp -type d -empty

21. Arquivo todos os arquivos ocultos

Para encontrar todos os arquivos ocultos, use o comando abaixo.

find /tmp -type f -name ".*"

Parte III – Localizar arquivos com base em Proprietários e Grupos

22. Encontre único arquivo com base no usuário

Para encontrar todos os arquivos ou um único arquivo chamado receita.txt dentro da raiz “/”

find / -user root -name receita.txt

23. Localizar todos os arquivos com base no usuário

Para encontrar todos os arquivos que pertence ao usuário cleuber dentro da pasta /home.

find /home -user cleuber

24. Encontre todos os arquivos com base em Grupo

Para encontrar todos os arquivos que pertence ao grupo developer dentro da pasta /home.

find /home -group developer

25. Localizar arquivos particulares de um usuário

Para encontrar todos os arquivos .txt do usuário cleuber na pasta /home.

find /home -user tecmint -iname "*.txt"

Parte IV – Localizar arquivos e diretórios com base na data e hora

26. Encontre as últimas 50 Dias arquivos modificados

Para encontrar todos os arquivos que são modificados 50 dias atrás.

find / -mtime 50

27. Encontre arquivos acessados nos últimos 50 dias

Para encontrar todos os arquivos que foram acessados até 50 dias atrás.

find / -atime 50

28. Encontre os arquivos modificados entre 50 a 100 dias atrás

Para encontrar todos os arquivos que foram modificados mais de 50 dias para trás e menos de 100 dias.

find / -mtime +50 -mtime -100

29. Procurar arquivos alterados na última hora

Para encontrar todos os arquivos que foram alterados na última hora.

find / -cmin -60

30. Procurar arquivos modificados na última 1 hora

Para encontrar todos os arquivos que foram modificados na última hora.

find / -mmin -60

31. Procurar arquivos acessados na última 1 hora

Para encontrar todos os arquivos que foram acessados pela última vez na última hora.

find / -amin -60

Parte V – Localizar arquivos e diretórios com base no tamanho

32. Encontrar arquivos de 50MB

find / -size 50M

33. Encontre arquivos de tamanho entre 50MB a 100MB

Para encontrar todos os arquivos que são maiores do que 50 MB e menores de 100 MB.

find / -size +50M -size -100M

34. Localizar e apagar arquivos de 100MB

Para encontrar todos os arquivos de 100MB e excluí-los usando um único comando.

find / -size +100M -exec rm -rf {} \;

35. Procurar arquivos específicos e Excluir

Pesquisar os arquivos de extensão .mp3 com mais de 2MB e excluí-los usando um único comando.

find / -type f -name *.mp3 -size +2M -exec rm {} \;

Conclusão

Estes comandos find são extremamente úteis e com certeza em algum momento você precisará muito deles. Eu não usei outras ações do “-exec” aqui para os arquivos que foram encontrados, mas a sintaxe do exec para uma ação de cópia, após o comando find, por exemplo, seria:

-exec cp {} /pasta-destino \;

Exemplo – Encontrar arquivos mp3 e copiá-los para a pasta /tmp/musicas:

find . -type f -name "*.mp3" -exec cp {} /tmp/musicas \;

E a mesma regra se aplica para o comando de mover (mv).

Para saber mais dos comandos de Linux, um outro artigo talvez possa ser útil.

Comandos Básicos de Linux

permissions

Até a próxima!

Cleuber

About Cleuber

Cleuber Silva Hashimoto. Administrador

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...