Qual é a diferença entre 'localizar' e 'encontrar' no Linux?


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.


11
... e updatedbfaça algo parecido find / -type f | gzip > locate.gz.
F. Hauri

10
unix.stackexchange.com/questions/60205/… responde a essa pergunta com mais detalhes.
noz sobre natty

3

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. :)


0

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.


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.