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
Social