Me resulta sorprendente lo rápido que funciona el trabajo de localización o el autocompletado (que sé) en Linux. ... ¿Se realiza alguna indexación en segundo plano o cómo se logra?
Esto es en realidad dos preguntas completamente distintas.
locate
usa un índice (slocate lo almacena /var/lib/slocate/
), que se actualiza mediante un cron
trabajo nocturno . Este trabajo nocturno generalmente se ejecuta a aproximadamente 1 o 2 a.m. a la hora local, y escanea completamente todo el sistema (incluidas todas las unidades conectadas). El índice resultante es simplemente una lista de nombres de archivo.
El autocompletado es manejado por su shell. La mayoría de los sistemas usan bash
, también lo bash-completion
es la colección de scripts que administran cómo funciona esto. ( zsh
tiene una colección con un nombre similar, y la mayoría de los otros shells tienen alguna forma de finalización incorporada). Cuando Tabse presiona, el shell ejecuta un script que decide, según lo que ya ha escrito, qué necesita exactamente. a completar. Luego, el script genera una lista de posibles finalizaciones, que puede ser o no la lista de archivos en el directorio actual, o la lista de archivos ejecutables en su $PATH
. El locate
comando normalmente no se usa para esto.