在 Linux 中,搜尋檔案最簡單快速的方法就是使用 whereis 命令,該命令的基本格式如下:
[[email protected] ~]# whereis [-bmsu] [-BMS 目錄... -f] [檔案...]
此格式中,用 [] 括起來的都是可選選項,其中各個引數的含義分別是:
-
-b:只查詢二進位制檔案。
-
-B 目錄:只在指定的目錄下查詢二進位制檔案。
-
-m:只查詢說明檔案。
-
-M 目錄:只在指定的目錄下查詢說明檔案。
-
-s:只查詢原始程式碼檔案。
-
-S 目錄:只在指定的目錄下查詢原始程式碼檔案。
-
-u:查詢不包含指定型別的檔案。
-
-f:不顯示檔名前的路徑名稱。
前面之所以說 whereis 簡單,因為只要執行如下命令:
[[email protected] ~]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
就可以搜尋到 ls 命令以及它的聯機幫助文件所在的位置。
通常情況下,我們只需要檢視輸出結果的第一部分,這是目標命令所在的位置。
同時該命令執行效率還很高,因為它根本不在磁碟中漫無目的的亂找,而是在一個資料庫中(/var/lib/mlocate)查詢,這個資料庫是 Linux 系統自動建立的,其包含本地所有檔案的資訊,並且每天通過自動執行 updatedb 命令更新一次。
但是,也正因為這個資料每天才自動更新一次,會使得 whereis 命令的搜尋結果可能會不準確。比如剛新增的檔案可能搜不到,而剛刪除的檔案還會出現在結果中。因此,如果想使用 whereis 命令獲得準確的搜尋結果,最好事先手動執行一個 updatedb 命令。
雖然 whereis 命令既簡單又高效,但是功能卻很有限,它只能用於搜尋可執行檔案、聯機幫助檔案和原始碼檔案。如果想要獲得更全面的搜尋結果,可以使用 locate、find 等搜尋命令。