Pesquisa de arquivos em tempo real


O comando find localiza os arquivos, pesquisando em tempo real na hierarquia de sistema de arquivos. Esse comando é mais lento, mas mais preciso do que o comando locate. O comando find também pesquisa arquivos com base em critérios diferentes do nome do arquivo, como as permissões do arquivo, o tipo de arquivo, seu tamanho ou sua hora de modificação.

O comando find examina os arquivos do sistema de arquivos com a conta de usuário que executou a pesquisa. O usuário que executa o comando find deve ter permissão de leitura e execução em um diretório para examinar o respectivo conteúdo.

O primeiro argumento do comando find é o diretório a ser pesquisado. Se o comando find omite o argumento do diretório, ele começa a pesquisa no diretório atual e procurará correspondências em todos os subdiretórios.

Para pesquisar arquivos por nome de arquivo, use a opção -name FILENAME do comando find para retornar o caminho dos arquivos que correspondem exatamente a FILENAME. Por exemplo, para pesquisar os arquivos sshd_config a partir do diretório root /, execute o seguinte comando:

[root@host ~]# find / -name sshd_config
/etc/ssh/sshd_config

Nota

No comando find, a palavra completa options usa um único traço para options, ao contrário de um traço duplo para a maioria dos outros comandos do Linux.

Caracteres curinga estão disponíveis para pesquisa por nome de arquivo e retornarão todos os resultados que forem correspondências parciais. Com caracteres curinga, é essencial colocar o nome do arquivo a ser procurado entre aspas para evitar que o terminal interprete o caractere curinga incorretamente.

No seguinte exemplo, comece no diretório /, pesquise os arquivos que terminam com a extensão .txt:

[root@host ~]# find / -name '*.txt'
...output omitted...
/usr/share/libgpg-error/errorref.txt
/usr/share/licenses/audit-libs/lgpl-2.1.txt
/usr/share/licenses/pam/gpl-2.0.txt
...output omitted...

Para procurar arquivos no diretório /etc/ que contêm a string pass, execute o seguinte comando:

[root@host ~]# find /etc -name '*pass*'
/etc/passwd-
/etc/passwd
/etc/security/opasswd
...output omitted...

Para executar uma pesquisa que não diferencia minúsculas de maiúsculas de um nome de arquivo, use a opção -iname do comando find, seguida pelo nome de arquivo a pesquisar. Para pesquisar arquivos que correspondam à string messages, sem diferenciar maiúsculas de minúsculas, em seus nomes no diretório root /, execute o seguinte comando:

[root@host ~]# find / -iname '*messages*'
/sys/power/pm_debug_messages
/usr/lib/locale/C.utf8/LC_MESSAGES
/usr/lib/locale/C.utf8/LC_MESSAGES/SYS_LC_MESSAGES
...output omitted...

Referências