更新時間:2018年12月28日22時20分 來源:linux培訓(xùn) 瀏覽次數(shù):
Linux下幾個常見的文件查找命令:
which 查看可執(zhí)行文件的位置
whereis 尋找特定文件,查看文件的位置
locate 配合數(shù)據(jù)庫查看文件位置
find 實際搜尋硬盤查詢文件名稱
通常情況下find命令并不是很常用,大家都優(yōu)先使用whereis和locate命令來查找,因為whereis和locate命令都是利用數(shù)據(jù)庫來查找文件所在,并沒有實際查詢硬盤,所以速度很快,節(jié)省時間。但是我們的find命令依然很強大,它的查找條件相當多,對于用其他命令查找不到的文件,就可以考慮使用find命令在硬盤上遍歷查找,雖然速度慢效率低。
find(用于在文件樹中查找文件,并進行相應(yīng)操作)
格式: find [PATH] [option] [action]
[PATH] : 所要搜索遍歷的目錄,默認為當前目錄
[option] : 所要搜索文件的條件特征
[action] : 對搜索結(jié)果進行特殊處理
為了縮短指令的執(zhí)行時間,要盡量縮小查找的起始目錄。因為find指令使用遞歸的方式遍歷目錄,所以起始目錄范圍較大,會導(dǎo)致find指令的運行時間過長。
不加任何參數(shù)時,默認遍歷當前目錄及其子目錄,將它們?nèi)硷@示在屏幕上。
1. 與時間有關(guān)的參數(shù)
-amin n :查找n分鐘內(nèi)被訪問過的文件
-cmin n : 查找n分鐘內(nèi)被修改過文件狀態(tài)的所有文件
-mmin n : 查找n分鐘內(nèi)被修改過文件內(nèi)容的所有文件
-atime n : 將n天內(nèi)存取過的的文件列出來
-ctime n : 將n天內(nèi)改變、新增的文件或者目錄列出來
-mtime n : 將n天內(nèi)修改過的文件或者目錄列出來
-newer file :把比file還要新的文件列出來 (可用來分辨兩個文件之間的新舊關(guān)系)
除此之外,以-mtime為例:(類比使用其他與時間有關(guān)的參數(shù))
-mtime n :列出n天前的那一天被更改過的文件
-mtime +n :列出n天之前(不包含n天本身)被更改過的文件
-mtime -n :列出n天之內(nèi)(包含n天本身)被更改過的文件
-mtime 0 : 0代表當前時間,即列出從現(xiàn)在開始到24小時前之間的被更改過的文件
2. 與用戶或用戶組名有關(guān)的參數(shù)
-uid n :尋找擁有者ID為n的文件
-gid n :尋找用戶組ID為n的文件
-group name :尋找群組名稱為name的所有文件
-user name :尋找用戶名稱為name的所有文件
-nouser :尋找文件所有者不存在 /etc/passwd 的人(可以查找不太正常的文件)
-nogroup : 尋找文件的所有用戶組不存在于 /etc/group 中的文件
如果你將某個賬戶刪除了,該賬戶曾經(jīng)建立的文件就成了無主的非正常文件,這時候可以利用 -nouser來找出該類型的文件
3. 與文件權(quán)限及名稱有關(guān)的參數(shù)
(1)-name [filename] : 查找文件名為filename的文件
從以上的例子中我們可以看出,find命令需要一個路徑名作為查找范圍,find會深入到這個路徑的每一個子目錄中去尋找,打印文件的絕對路徑。
如果指定路徑為“/”,就查找整個文件系統(tǒng)。-name選項指定了文件名,-printf表示將結(jié)果輸出到屏幕上,-type選項用來定位特殊文件類型。
(2)-size [+-]SIZE : 查找比"SIZE"還要大(+)或小(-)的文件 (SIZE的規(guī)格有:① c :代表byte ②k :代表1024 bytes) ; 要找比50k還要大的文件時就用" -size +50k"
(3)-type [TYPE] :查找文件類型為TYPE的文件
-type選項常見的參數(shù):
參數(shù)含義
b塊設(shè)備文件
c字符設(shè)備文件
d目錄文件
f普通文件
p命名管道
l符號鏈接
4.其它
-exec [command] : command為其他命令,-exec后面可接其它的命令來處理查找到的結(jié)果。
-exec 到 “ \; ”是關(guān)鍵字,代表find額外命令的開始到結(jié)束,這兩者之間就是find命令的額外命令
-print :將結(jié)果打印到屏幕上,默認操作