whereis
where命令只能用于程序名的搜索,而且只搜索二進制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息
// 使用whereis
$ whereis git
/usr/bin/git
which
which命令的作用是,在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的為位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪個位置的命令
// 使用which
$ which git
/usr/local/bin/git
find
find是最強大的查找命令,同時,也最慢。
// 語法
$ find [指定目錄] [指定條件] [指定動作]
- 指定目錄:所要搜索的目錄及其所有子目錄。默認為當前目錄
- 指定條件:所要搜索的文件的特征
- 指定動作:對搜索結(jié)果進行特定的處理
// 使用
find的使用實例:
- 搜索當前目錄中,所有以code開頭的文件
$ find . name 'code*'
- 搜索當前目錄中,所有以code開頭的文件,并展示詳細信息
$ find . -name 'code*' -ls
- 搜索當前目錄中,所有過去10分鐘更新過的普通文件,如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄
$ find . -type f -mmin -10
locate
與find的關(guān)系:find -name 因為它不搜索目錄,搜索的是/usr/local/locatedb數(shù)據(jù)庫,比find快,但是對于最近更新的文件,有可能搜索不到。使用前,可以先執(zhí)行updatedb(mac可以執(zhí)行sudo /usr/libexec/locate.updatedb)。
- 搜索etc目錄下所有以是開頭的文件
$ locate /etc/sh
- 搜索etc目錄下所有以sh開頭的文件
$ locate /etc/sh
- 搜索用戶主目錄下,所有以code開頭的文件
$ locate ~/m
- 搜索用戶主目錄下,所有以code開頭的文件, 并且忽略大小寫
$ locate -i ~/m