Linux 下幾個查詢命令 find,locate,whereis,which,type 總結
在 Linux 命令列下,常常根據需要進行相應檔案的查詢,有很多方法可以做到這一點,本次部落格對這些方法進行一個總結,可根據需要靈活運用。
1. find
find 是最常見也是最強大的查詢命令,幾乎能滿足任何查詢需求。
find 命令使用格式:
find 路徑 引數
時間查詢引數:
-atime n :將 n*24小時記憶體取過的的檔案列出來
-ctime n :將 n*24小時內改變、新增的檔案或者目錄列出來
-mtime n :將 n*24小時內修改過的檔案或者目錄列出來
-newer file :把比file還要新的檔案列出來
名稱查詢引數:
-gid n:尋找群組 ID 為 n 的檔案
-group name
-uid n:尋找擁有者 ID 為 n 的檔案
-user name:尋找使用者者名稱為 name 的檔案
-name file:尋找檔名為 file 的檔案(可以使用萬用字元)
2. locate
locate 命令其實就是 “find -name” 的另一種寫法,但是要比後者快得多,因為 locate 命令不搜尋具體目錄,而是搜尋一個數據庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。Linux 系統自動建立這個資料庫,並且每天自動更新一次,所以使用 locate 命令查不到最新變動過的檔案。為了避免這種情況,可以在使用 locate 之前,先使用 updatedb 命令,手動更新資料庫。
locate 命令使用格式:
locate 檔案或目錄名稱
3. whereis
whereis 命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數 -b)、man 說明檔案(引數 -m)和原始碼檔案(引數 -s)。如果省略引數,則返回所有資訊。
4. which
which 命令的作用是,在 PATH 變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。也就是說,使用 which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
5. type
type 命令其實不能算查詢命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進位制檔案提供的。如果一個命令是外部命令,那麼使用 -p 引數,會顯示該命令的路徑,相當於 which 命令。