segunda-feira, 7 de setembro de 2015

Otimizando suas buscas no Linux com o comando Find.


Encontrando arquivos e pastas com filtros no Linux com o comando Find, uma poderosa ferramenta de buscas. 


Como uma ajuda para o tópico de buscas via Shell das provas da LPIC - 1, fiz esse guia com exemplos práticos do uso do comando Find para otimização e tratamento de buscas de arquivos no Linux.



Encontrando arquivos com o nome Linux no diretório /home/matheus/Dropbox
# find /home/matheus/Dropbox -name linux -print



Encontrando arquivos com o nome Linux no diretório /home/matheus/Dropbox ignorando o case sensitive (ignorando maiúsculas e minúsculas)
# find /home/matheus/Dropbox -iname linux -print 


Procurando por arquivos JPG no diretório /etc/
# find /etc/  -name '*.jpg" -print



Procurando por arquivos JPG e PNG no diretório /home/matheus/
# find /home/matheus/ -name '*.jpg' -o -name '*.png' -print 



Procurando por arquivos que foram modificados há X dias
# find /home/matheus -mtime 3 -print 

* O parâmetro mtime corresponde á Modification Time 



Procurando por arquivos que foram acessados há mais de X dias
# find /home/matheus -atime +7 -print

* O parâmetro atime corresponde a Acess Time



Procurando por arquivos que tenham como dono o usuário X
# find /home/matheus/ -user matheus -print 

Procurando por arquivos que tenham como grupo o grupo X
# find /home/matheus/ -group root -print 


Procurando arquivos por suas permissões
# find /home/matheus/ -perm o=x -type f 

* Procura no diretório os arquivos que tenham permissão de execução para os "outros"

# find /home/matheus/ -perm 0755 -type f 
* Procura no diretório todos os arquivos que tenham permissão 0755 


Usando o parâmetro redirecionador -exec 


O parâmetro exec funciona como um redirecionador parecido com o Xargs. Colocando ele em um comando ele irá redirecionar cada resultado da busca como parâmetro para outro comando. Vamos ver como funciona na prática. 


Procurando por todos os arquivos jpg dentro do diretório home e printando os mesmos em um arquivo chamado procura.txt
# find /home/ -name '*.jpg' -exec echo >> procura.txt {} \;

Agora vamos dar um cat no procura.txt pra ver se gravou certinho.
# cat procura.txt




Procurando por todos os arquivos com o nome "teste" e removendo os mesmos
# find /home/matheus -name 'teste.*' -exec rm -rf {} \;


Procurando por arquivos que tenham permissão 0755 e executa um ls -l em todos
# find /home/matheus/ -perm 0755 -type f -exec ls -l {} \;

:) 

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

4 comentários:

  1. Respostas
    1. falta ai o procurar por pastas (-type d)
      sudo find / -name nmap -type d

      o sudo é importante para não fazer o display de pastas do systema (.system_folder)

      Excluir
    2. Obrigado pela contribuição Pedro!!!

      Excluir

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com