Acho surpreendente a rapidez com que o trabalho de localização ou o preenchimento automático (que eu sei) funcionam no linux. ... Existe alguma indexação sendo executada em segundo plano ou como isso é alcançado?
Na verdade, são duas questões completamente distintas.
locate
usa um índice (slocate o armazena /var/lib/slocate/
), que é atualizado por um cron
trabalho noturno . Esse trabalho noturno geralmente é executado aproximadamente às 1 ou 2 da manhã, horário local, e varre completamente todo o sistema (incluindo todas as unidades conectadas). O índice resultante é simplesmente uma lista de nomes de arquivos.
O preenchimento automático é tratado pelo seu shell. A maioria dos sistemas usa bash
, assim bash-completion
como a coleção de scripts que gerenciam como isso funciona. ( zsh
possui uma coleção com o mesmo nome e a maioria dos outros shells possui alguma forma de conclusão embutida.) Quando Tabpressionado, o shell executa um script que decide, com base no que você já digitou, o que exatamente precisa para ser completado. O script gera uma lista de possíveis conclusões, que podem ou não ser a lista de arquivos no diretório atual ou a lista de arquivos executáveis no seu $PATH
. O locate
comando normalmente não é usado para isso.