linux下的文件查找——type whereis which find locate
1.type命令
用途說明:
type命令用來顯示指定命令的類型。一個命令的類型可以是如下之一
alias 別名
keyword 關鍵字,Shell保留字
function 函數,Shell函數
builtin 內建命令,Shell內建命令
file 文件,磁盤文件,外部命令
unfound 沒有找到
它是Linux系統的一種自省機制,知道了是那種類型,我們就可以針對性的獲取幫助。比如內建命令可以用help命令來獲取幫助,外部命令用man或者info來獲取幫助。
常用參數
type命令的基本使用方式就是直接跟上命令名字。
type -a可以顯示所有可能的類型,比如有些命令如pwd是shell內建命令,也可以是外部命令。
type -p只返回外部命令的信息,相當於which命令。
type -f只返回shell函數的信息。
type -t 只返回指定類型的信息。
Type:類似於which,快,但是只能用用語bash環境
2.whereis
Whereis:找出可執行文檔、程序等等(只能找系統規定的某些文件路徑,找到的是系統命令和內建命令,man文檔等等的位置)
whereis命令會在指定的目錄中查找符合條件的文件,文件應的屬性應屬於原始代碼,二進制文件,或是幫助文件。優點是快速,可以找到腳本和普通文件,因為是數據庫存儲的,但是往往能找到已經刪掉的文件不能找到剛剛創建的文件。Find雖然准確,但是相對緩慢。另外locate命令也有相同的效果,不過也有同樣的問題,可以使用updatedb來更新數據庫。
3.Find:查找並處理特定文件
FindDIR(目錄) EXP(搜索條件)ACTION(動作)
-namepattern 找出名稱、路徑名稱、符號
-typef|d|l|b|c|p|s只搜普通文件、目錄、符號連接、塊設備、字符設備、具名管道、或者socketl
Find / -name boot -type d:查找/下面boot文件夾
查找當前目錄下面的最大文件:
find -type f -exec stat -c "%s %n" {} \; | sort -nr | head -1
注意:-exec選項的應用
4.Locate
5.Which:查找特定的可執行文件,指明它的位置(從PATH中尋找)
Which
語 法:which[文件...]
補充說明:which指令會在環境變量$PATH設置的目錄裡查找符合條件的文件。即查找的是二進制可執行文件。
-n<文件名長度> 指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
-p<文件名長度> 與-n參數相同,但此處的<文件名長度>包括了文件的路徑。
-w 指定輸出時欄位的寬度。
-V 顯示版本信息
我們在某個用戶下面輸入某個命令,如果出現“commandnot found”,那麼一個很有可能的原因就是,該命令的二進制可執行文件不在該用戶的環境變臉之內