Comando FIND

De Wiki Hackstore

Localizar o arquivo mysql.log no diretório /var/log

$ find /var/log/ -name mysql.log
/var/log/mysql/mysql.log


Localizar os arquivos/diretórios baseado em tempo

Existe várias formas de localização por data de modificação o parametro do find é mtime, o de acesso é atime e o de criação é ctime.


Localizar os arquivos/diretórios modificados a 5 dias

 find /etc -mtime 5
 /etc/mtab
 /etc/samba
 /etc/samba/smb.conf


Localizar os arquivos/diretórios que não são modificados a mais de 5 dias

 find /etc -mtime +5
 /etc/hp
 /etc/hp/hplip.conf
 /etc/pm
 /etc/pm/sleep.d
 /etc/pm/config.d
 /etc/pm/power.d
 ......
 /etc/X11
 /etc/X11/fs


Localizar os arquivos/diretórios que foram modificados em menos de 5 dias

 find /etc -mtime -5
 /etc
 /etc/hosts
 /etc/samba/private/schannel_store.tdb
 /etc/samba/private/smbpasswd

Obs.: lembrando que no caso do + e - não está incluso o do quinto dia.


Execução de comandos específicos utilizando resultado da busca

No exemplo abaixo é possível remover os arquivos antigos de log do squid:

find /var/log/squid -iname *squid.log*2009* -exec rm -rf {} \;


Limpeza de diretórios vazios

Para evitar os erros utilizando "-exec" ou "| xargs" ao utilizar o rmdir devido a alguns diretórios terem espaço no nome, utilize o parâmetro "-print0":

find . -type d -empty -print0 | xargs -0 rmdir


Caso a lista seja muito extensa:

find . -depth -type d -empty -exec rmdir {} +