Entendendo os comandos find e locate

Olá pessoal,

Pra quem gosta de linhas de comando, sabe que os comandos find e locate são muito poderosos, inclusive no uso de shell script. Ambos tem a mesma função; porém o comando find executa a busca direto no local que você especificou, enquanto o comando locate executa a busca a partir de uma base.

A sintaxe do comando find é:

find caminho opções termo_a_ser_procurado

Exemplo:

# find / -name passwd /etc/passwd /etc/pam.d/passwd /usr/bin/passwd /usr/share/lintian/overrides/passwd /usr/share/linda/overrides/passwd /usr/share/doc/passwd

Traduzindo: Procure no diretório raiz (/) pelo termo “passwd”.

Fácil não?

Agora, falando sobre o comando locate, ele faz a busca dentro de uma base que é construída com um outro comando, o updateb.

Assim a busca sendo um pouco mais rápida, pois o locate vai usar a base que o updatedb construiu! Só um detalhe muito importante:

imagine que você tenha atualizado a base do comando locate e em seguida crie um novo arquivo. Se você não executar o updatedb novamente, o arquivo que acabou de ser criado não será localizado pelo locate!

Então, antes de vermos um exemplo do locate, vamos construir a base que ele irá utilizar:

# updatedb

Esse comando pode demorar um pouquinho para ser terminar e deve ser rodado como root (superuser). Enquanto o updatedb estiver rodando, o terminal fica indisponível…

quando você receber o prompt de volta, significa que o comando terminou e aí pode passar para o próximo passo, que é executar uma busca com o locate.

Exemplo:

# locate passwd /etc/pam.d/passwd /etc/passwd /etc/passwd- /lib/security/pam_unix_passwd.so /usr/bin/gpasswd

Veja neste ótimo vídeo pela geek Nixie Pixel outras opções interessantes inclusive pra quem está iniciando os estudos do shell script

Link: http://www.youtube.com/watch?v=x_R_JSiupzo