'localizar' o comando no terminal. Por que isso é tão rápido?

7

A pesquisa de uma palavra-chave no terminal linux usando o comando locate dá resposta em um curto espaço de tempo. Qual é o algoritmo de busca usado?

    
por algosig 07.01.2014 / 19:43

2 respostas

8

O sistema cria uma base de dados de todos os arquivos no computador. Então, quando você pesquisa através de locate o comando realmente não verifica todo o sistema de arquivos, mas apenas o banco de dados, ele faz um algoritmo de busca binária que é rápido como procurar uma palavra em um dicionário. É por isso que é tão rápido (e prático).

Esse banco de dados é atualizado regularmente; você pode ter visto funcionar algumas vezes quando você instala um novo pacote: updating mlocate... . Você pode encontrar mais informações sobre como funciona executando em um terminal:

man locate

man updatedb
    
por animaletdesequia 07.01.2014 / 19:47
4

Ele usa um banco de dados. O banco de dados pesquisado por padrão está localizado em:

/var/lib/mlocate/mlocate.db

O lado negativo do locate é que NÃO é em tempo real.

Da página do manual:

  

DESCRIÇÃO          locate lê um ou mais bancos de dados preparados pelo updatedb (8) e grava          nomes de arquivos correspondentes a pelo menos um dos PADRÕES à saída padrão,          um por linha.

    
por Rinzwind 07.01.2014 / 19:45