Linux whereis命令用法詳解

2020-07-16 10:05:12
在 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 等搜尋命令。