O comando find é uma opção muito eficiente e quando deseja-se encontrar arquivos no Linux em modo texto. O mesmo vem presente na maioria das sistribuições atuais. Porém caso o comando find não esteja disponível na sua distribuição basta instalar o pacote findutils. Abaixo veremos algumas formas e exemplos de sua utilização.
Localizando arquivos por nome:
r2d2:~# find / -name sources.list
/usr/share/doc/apt/examples/sources.list
/etc/apt/sources.list
Em nosso exemplo, foi efetuada a busca em todo o sistema diretamente da raiz (/). O comando find é case sensitive, ou seja o mesmo diferencia letras maiúsculas e minúsculas. Imagine se quisermos localizar o arquivo README em /etc/init,d. Se fizermos com a mesma linha de comandos acima, teremos uma busca sem resultados, quando este tipo de busca for necessária, deve ser utilizando o parâmetro iname ao invés de name, como abaixo:
r2d2:~# find /etc/init.d/ -iname readme
/etc/init.d/README
Esta opção é mais indicada em caso de buscas mais precisas, pois com ela o sistema não irá diferenciar letras maiúsculas e minúsculas, portanto a dica é que em caso de dúvidas utilize a opção iname. Uma outra observação é que podemos informar o diretório onde será realizada a busca, no caso da procura pelo arquivo README, efetuamos a busca em /etc/init.d.
Localizando arquivos por usuários
Com o exemplo abaixo, efetuamos a busca por usuário, onde o procuramos no diretório /var por arquivos que tenham o usuario leandro como dono.
r2d2:~# find /var -user leandro
/var/spool/cron/crontabs/leandro
/var/mail/leandro
Da mesma forma em que foi efetuada a busca por usuários, é possível executar a busca por grupos facilmente, bastando apenas executar a referida linha de comandos com a opção
-group ao invés de
-user para localizarmos os arquivos pertencentes ao grupo citado. Abaixo temos também um exemplo, onde procuramos em /var arquivos pertencentes ao grupo xrdp que é uma alteranativa de acesso remoto ao VNC para Linux.
r2d2:~# find /var -group xrdp
/var/run/xrdp
/var/log/sesman.log
Uma outra utilizada é efetuar uma busca por tamanho, está pode ser útil em uma ocasiao onde temos que eliminar rapidamente espaço em disco seja por qual for o motivo. Se esta for sua necessidade o comando find também pode ser útil, para tal tarefa deve ser utilizado o parâmetro -size. Abaixo localizamos arquivos com mais de 5G em nosso sistema:
r2d2:~# find / -size +5G
/home/leandro/.VirtualBox/VDI/Microsoft Windows XP Professional.vdi
Neste caso, foi encontrado um arquivo de disco virtual do Oracle VirtualBox. Da mesma forma em que utilizamos a busca por aquivos contento mais de 5GB em nosso sistema, poderíamos efetuar a busca utilizando por Kilobytes utilizando o sub-parâmetro k (minúsculo) e para Megabytes o parâmetro M (maiúsculo), preste atenção na hora de executar estes sub-parâmetros do comando find, pois o comando find é case-sensitive, ou seja diferencia caracteres maiúsculos e minúsculos.