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.
locateusa um índice (slocate o armazena /var/lib/slocate/), que é atualizado por um crontrabalho 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-completioncomo a coleção de scripts que gerenciam como isso funciona. ( zshpossui 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 locatecomando normalmente não é usado para isso.