Aprenda a “encontrar coisas” pelo terminal Linux, com o comando FIND
31/07/2013 1
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
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
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
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).
http://sejalivre.org/aprenda-a-encontrar-coisas-pelo-terminal-linux-com-o-comando-find/