Search
搜尋文件(定位)或自動完成是如何工作的?
我是 Windows 使用者,來自 Windows,在搜尋文件時有所有的索引和永恆的等待時間,我發現在 linux 中定位工作或自動完成(我知道)工作的速度有多快令人驚訝。
是否在後台進行了任何索引或如何實現?我仍然有一個非常乾淨的安裝,所以也許這會隨著時間的推移而變壞,但是在 Windows 中,當你想要搜尋一個沒有索引的文件夾時,你必須等待幾秒鐘。
我發現在 linux 中定位工作或自動完成(我知道)工作的速度有多快令人驚訝。…是否在後台進行了任何索引或如何實現?
這實際上是兩個完全不同的問題。
locate
使用一個索引(slocate 將其儲存在 中/var/lib/slocate/
),該索引由夜間cron
作業更新。此夜間作業通常在當地時間凌晨 1 點或 2 點左右執行,並完全掃描您的整個系統(包括所有連接的驅動器)。結果索引只是一個文件名列表。自動完成由您的 shell 處理。大多數係統都使用
bash
,bash-completion
管理其工作方式的腳本集合也是如此。(zsh
有一個類似名稱的集合,並且大多數其他 shell 都內置了某種形式的完成。)Tab
按下時,shell 執行一個腳本,該腳本根據您已經鍵入的內容來決定需要什麼要完成的。然後該腳本會生成一個可能完成的列表,它可能是也可能不是目前目錄中的文件列表,或者您的$PATH
. 該locate
命令通常不用於此。