Saya menemukan betapa terkejutnya seberapa cepat menemukan pekerjaan atau pelengkapan otomatis (yang saya tahu) bekerja di linux. ... Apakah ada pengindeksan yang dilakukan di latar belakang atau bagaimana hal ini dicapai?
Ini sebenarnya adalah dua pertanyaan yang sangat berbeda.
locatemenggunakan indeks (slocate menyimpannya di /var/lib/slocate/), yang diperbarui oleh cronpekerjaan malam . Pekerjaan malam ini biasanya berjalan sekitar 1 atau 2 pagi waktu setempat, dan memindai seluruh sistem Anda (termasuk semua drive yang terhubung). Indeks yang dihasilkan hanyalah daftar nama file.
Pelengkapan otomatis ditangani oleh shell Anda. Sebagian besar sistem menggunakan bash, begitu bash-completionjuga kumpulan skrip yang mengatur cara kerjanya. ( zshMemiliki koleksi bernama sama, dan sebagian besar kerang lain memiliki beberapa bentuk penyelesaian built-in.) Ketika Tabditekan, shell menjalankan script yang memutuskan, berdasarkan apa yang telah Anda ketik sudah, apa, tepatnya, kebutuhan untuk diselesaikan. Script kemudian menghasilkan daftar penyelesaian yang mungkin, yang mungkin atau mungkin bukan daftar file di direktori saat ini, atau daftar file yang dapat dieksekusi di file Anda $PATH. The locateperintah biasanya tidak digunakan untuk ini.