Para obter melhores respostas em profundidade e abrangência, consulte esta resposta em Unix e Linux .
Aquele cara brasileiro
Respostas:
38
findpesquisas no sistema real. É mais lento, mas sempre atualizado e tem mais opções (tamanho, hora da modificação, ...)
locateusa um banco de dados criado anteriormente (comando updatedb). É muito mais rápido, mas usa um banco de dados 'mais antigo' e pesquisa apenas nomes ou partes deles.
Em qualquer caso, man finde man locateirá ajudá-lo ainda mais.
Os comandos locatee findencontrarão um arquivo, mas eles funcionam de maneiras bem diferentes.
locate funcionará no modo offline:
Para uma explicação simples, o banco de dados de indexação de arquivos no sistema Unix chamado slocate listará os locais de todos os arquivos fornecidos com o sistema Unix. Quando você executa locate, ele usa esse banco de dados para procurar um arquivo específico. O problema locateé que, se você acabou de criar um arquivo que agora deseja procurar, a localização não funcionará porque o banco de dados slocate não está atualizado. Para superar esse problema, você pode usar updatedbpara atualizar o banco de dados slocate . A execução locatenovamente agora encontrará o arquivo recém-criado. Assim, muitos administradores de sistema Linux usam um crontrabalho para atualizar regularmente o banco de dados slocate .
find funcionará no modo online / "em tempo real".
Na verdade, ele procurará todos os diretórios para encontrar o arquivo específico especificado e examinará cada arquivo um por um. Portanto, requer muitas chamadas de E / S.
Portanto, com base na natureza, fica claro que a localização é mais rápida do que a localização, mas a localização é em tempo real.
Espero que isso ajude a esclarecer a idéia. Muito bem sucedida. :)
locate simplesmente olha seu banco de dados e relata o local do arquivo.
find não usa um banco de dados, ele percorre todos os diretórios e seus subdiretórios e procura por arquivos que correspondam ao critério especificado.
Uma alternativa ao uso de localização é o comando localizar. Esse comando geralmente é mais rápido e pode pesquisar todo o sistema de arquivos com facilidade. Você pode instalar o comando com o apt-get:
sudo apt-get update
sudo apt-get install mlocate
O motivo pelo qual a localização é mais rápida que a encontrada é porque ele depende de um banco de dados dos arquivos no sistema de arquivos. O banco de dados geralmente é atualizado uma vez por dia com um script cron, mas você pode atualizá-lo manualmente digitando:
sudo updatedb
Execute este comando agora. Lembre-se de que o banco de dados sempre deve estar atualizado se você deseja encontrar arquivos adquiridos ou criados recentemente.
Respostas:
find
pesquisas no sistema real. É mais lento, mas sempre atualizado e tem mais opções (tamanho, hora da modificação, ...)locate
usa um banco de dados criado anteriormente (comandoupdatedb
). É muito mais rápido, mas usa um banco de dados 'mais antigo' e pesquisa apenas nomes ou partes deles.Em qualquer caso,
man find
eman locate
irá ajudá-lo ainda mais.fonte
updatedb
faça algo parecidofind / -type f | gzip > locate.gz
.Os comandos
locate
efind
encontrarão um arquivo, mas eles funcionam de maneiras bem diferentes.locate
funcionará no modo offline:locate
, ele usa esse banco de dados para procurar um arquivo específico. O problemalocate
é que, se você acabou de criar um arquivo que agora deseja procurar, a localização não funcionará porque o banco de dados slocate não está atualizado. Para superar esse problema, você pode usarupdatedb
para atualizar o banco de dados slocate . A execuçãolocate
novamente agora encontrará o arquivo recém-criado. Assim, muitos administradores de sistema Linux usam umcron
trabalho para atualizar regularmente o banco de dados slocate .find
funcionará no modo online / "em tempo real".Portanto, com base na natureza, fica claro que a localização é mais rápida do que a localização, mas a localização é em tempo real.
Espero que isso ajude a esclarecer a idéia. Muito bem sucedida. :)
fonte
locate
simplesmente olha seu banco de dados e relata o local do arquivo.find
não usa um banco de dados, ele percorre todos os diretórios e seus subdiretórios e procura por arquivos que correspondam ao critério especificado.fonte
Uma alternativa ao uso de localização é o comando localizar. Esse comando geralmente é mais rápido e pode pesquisar todo o sistema de arquivos com facilidade. Você pode instalar o comando com o apt-get:
O motivo pelo qual a localização é mais rápida que a encontrada é porque ele depende de um banco de dados dos arquivos no sistema de arquivos. O banco de dados geralmente é atualizado uma vez por dia com um script cron, mas você pode atualizá-lo manualmente digitando:
Execute este comando agora. Lembre-se de que o banco de dados sempre deve estar atualizado se você deseja encontrar arquivos adquiridos ou criados recentemente.
fonte