Aprenda a “encontrar coisas” pelo terminal Linux, com o comando FIND

Share
banner

No post de hoje vamos abordar o uso do comando find. Ele é um incrível software de terminal que tem por finalidade “encontrar coisas” no nosso sistema. Vamos lá?

Antes de mais nada, vamos consultar o manual do comando. Abra seu terminal Linux e digite:

man find

E você encontrará uma infinidade de opções de uso pra esse comando. Porém vamos nos ater a sintaxe de uso dele:

find <início da busca> [condições]  {ações}

O uso básico do find é como o exemplo acima. Iremos chamar o find, diremos o ponto de partida da busca que queremos realizar (se é dentro do /home, do /var ou de qualquer outro lugar), as condições da nossa busca (se é um arquivo, se é um executável, se foi modificado à partir de quando e etc) e as ações (o que queremos buscar).

Exemplo 1 – Encontrando arquivos e diretórios com base nos seus nomes

Vamos a um exemplo básico. Abaixo iremos realizar uma busca em nosso sistema de coisas (arquivos e diretórios) que contenham o nome “interfaces”:

find / -iname interfaces

find

Neste exemplo usamos a condição “-iname”, que retorna resultados independente de maiúsculas e minúsculas.

Exemplo 2 – Encontrando arquivos e diretórios com permissão 777

find / -perm 777

find1

Note que nos dois exemplos acima nós partimos nossas buscas do diretório raiz “/”. No próximo exemplo nós veremos outras opções de ponto de partida.

Exemplo 3 – Encontrando arquivos à partir de um local específico, que tenham permissão 644

find /root -type f  perm 644

find2

Neste exemplo partimos nossa busca do diretório /root e dizemos que queremos buscar SOMENTE POR ARQUIVOS (-type f). Se quiséssemos buscar por diretório somente, usaríamos -type d:

find /root  -type d

E se buscássemos por links simbólicos, usaríamos:

 find /home  -type l

Exemplo 4 – Buscar arquivos com base no seu tamanho

find /home -size +1 G

O comando acima irá encontrar todos os arquivos em /home que são maiores que 1GB.

Se quisermos buscar arquivos com EXATAMENTE 1GB, usaremos:

find /home -size 1G

Ou inferiores a 1GB:

find /home -size -1G

Exemplo 5 – Executar comando após encontrar coisas

Essa opção é muito bacana. O find consegue encontrar algo pra ti e executar algum comando em cima da sua busca! Vamos a sintaxe:

 find <onde buscar> <opções> -exec <comando> {} \;

Como exemplo, iremos buscar todos os arquivos que têm permissão 644 e fazer a lista deles, usando o comando ls -l

find / -perm 644 -exec ls -l {} \;

Ou podemos buscar todos os arquivos . mp3 (por exemplo) e removê-lo ”

find / -name “*.mp3”  -exec rm -rf {} \;

Exemplo 6 – Buscando arquivos com base na data de modificação ou acesso

Este exemplo é muito importante, inclusive é muito utilizado por analistas de segurança quando realizam perícias forenses em sistemas Linux, a fim de buscar possíveis alterações indesejadas. Vamos ao exemplo:

Localizar arquivos no diretório /home que foram modificados a mais de 60 dias atrás.

find /home -mtime +60

Encontrar os arquivos no diretório /var/spool que foram acessados ​​pelo menos há dois dias atrás

find /var/spool -atime +1

Exemplo 7 – Encontrar todos os arquivos e diretórios vazios no diretório raiz “/”

find / -empty

 

Conclusão

A nossa intenção aqui foi dar um “ponta-pé inicial” no estudo deste comando. Existem inúmeras outras opções de uso do comando find, que você pode verificar lendo o manual do comando (man find).

Com informações daqui

PUBLICIDADE


Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+.

Sobre o Autor

Blogueiro, fundador do Blog Seja Livre, Nerd inveterado, louco por Linux e músico nas horas vagas. Atualmente é o Editor Chefe, Consultor de SEO e Webdesign do Seja Livre, e possui algumas certificações em Linux e Administração de Redes.

  • Diego Gonçalves Silva

    Muito boa essa dica.
    Ótima para quem está iniciando na utilização do Linux.
    Sou estudante de adm. de sistemas linux pelo curso adv, no rio de janeiro.
    Parabéns pelo blog.

  • João

    rapaz, numa boa, não vou mentir… Simplesmente NUNCA consegui usar esse “find”…! Olha só: suponhamos que eu tenha no meu micro uma música do Bon Jovi que eu deseja “saber onde está tal música”, o que eu escreveria na sintaxe? jd@jd:~$ find Bon Jovi/ ? Tenho que ir na posta onde está o conjunto de músicas do Bon jovi? jd@jd:~$ cd Dropbox/ Músicas/ Internacional /Bon/ Jovi ?

    • Gabriel D’Albuquerque

      find /pasta -iname nomedamúsica

  • Erick Bruno

    Opa, ajudou bastante… Obrigado!

  • Marcio Diego

    Me ajudou muito!