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


