which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,并且返回第一個搜索結果。
which [文件...]
參 數:
-n<文件名長度> 指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。
-p<文件名長度> 與-n參數相同,但此處的<文件名長度>包括了文件的路徑。
-w 指定輸出時欄位的寬度。
-V 顯示版本信息

奇怪,我們經常用到的cd命令怎么找不到呢?這是因為 cd 是bash 內建的指令, which 預設是找 PATH 內所規范的目錄,所以找不到。我們可以通過type命令來看看
2 type
type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。如果一個命令是外部命令,那么使用-p參數,會顯示該命令的路徑,相當于which命令

whereis命令用來查找命令的位置,包括執行文件、源代碼和手冊頁文件。如果要查找任意文件的所在位置,可以使用locate或者find命令。使用說明如下
whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]
-b 只查找二進制文件。 -B 只在設置的目錄下查找二進制文件。 -f 不顯示文件名前的路徑名稱。 -m 只查找說明文件。 -M 只在設置的目錄下查找說明文件。 -s 只查找原始代碼文件。 -S 只在設置的目錄下查找原始代碼文件。 -u 查找不包含指定類型的文件

find最強大的文件搜索命令,命令使用方式如下

find [PATH] [option] [action]
常用的參數查找方式 時間查找參數: -atime n :將n*24小時內存取過的的文件列出來 -ctime n :將n*24小時內改變、新增的文件或者目錄列出來 -mtime n :將n*24小時內修改過的文件或者目錄列出來 -newer file :把比file還要新的文件列出來
名稱查找參數: -gid n :尋找群組ID為n的文件 -group name :尋找群組名稱為name的文件 -uid n :尋找擁有者ID為n的文件 -user name :尋找用戶者名稱為name的文件 -name file :尋找文件名為file的文件(可以使用通配符)
find中的時間參數很有意思,具體理解見下圖

find命令非常的強隊,更詳細的使用方式參考man find 或者鳥哥的私房菜這本書http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_5.php#find
5 locatelocate命令其實是"find -name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。
locate命令的使用實例:
$ locate /etc/sh
搜索etc目錄下所有以sh開頭的文件。
$ locate ~/m
搜索用戶主目錄下,所有以m開頭的文件。
$ locate -i ~/m
搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫。

新聞熱點
疑難解答