歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux下的文件查找命令——find

Linux下的文件查找命令——find

日期:2017/3/2 17:13:27   编辑:Linux基礎知識

Linux下幾個常見的文件查找命令:

which 查看可執行文件的位置
whereis 尋找特定文件,查看文件的位置
locate 配合數據庫查看文件位置
find 實際搜尋硬盤查詢文件名稱

通常情況下find命令並不是很常用,大家都優先使用whereis和locate命令來查找,因為whereis和locate命令都是利用數據庫來查找文件所在,並沒有實際查詢硬盤,所以速度很快,節省時間。但是我們的find命令依然很強大,它的查找條件相當多,對於用其他命令查找不到的文件,就可以考慮使用find命令在硬盤上遍歷查找,雖然速度慢效率低。

find(用於在文件樹中查找文件,並進行相應操作)

格式: find [PATH] [option] [action]

[PATH] : 所要搜索遍歷的目錄,默認為當前目錄

[option] : 所要搜索文件的條件特征

[action] : 對搜索結果進行特殊處理

  • 為了縮短指令的執行時間,要盡量縮小查找的起始目錄。因為find指令使用遞歸的方式遍歷目錄,所以起始目錄范圍較大,會導致find指令的運行時間過長。
  • 不加任何參數時,默認遍歷當前目錄及其子目錄,將它們全都顯示在屏幕上。

1. 與時間有關的參數

-amin n :查找n分鐘內被訪問過的文件

-cmin n : 查找n分鐘內被修改過文件狀態的所有文件

-mmin n : 查找n分鐘內被修改過文件內容的所有文件

-atime n : 將n天內存取過的的文件列出來
-ctime n : 將n天內改變、新增的文件或者目錄列出來
-mtime n : 將n天內修改過的文件或者目錄列出來
-newer file :把比file還要新的文件列出來 (可用來分辨兩個文件之間的新舊關系)

除此之外,以-mtime為例:(類比使用其他與時間有關的參數)

-mtime n :列出n天前的那一天被更改過的文件

-mtime +n :列出n天之前(不包含n天本身)被更改過的文件

-mtime -n :列出n天之內(包含n天本身)被更改過的文件

-mtime 0 : 0代表當前時間,即列出從現在開始到24小時前之間的被更改過的文件

2. 與用戶或用戶組名有關的參數

-uid n :尋找擁有者ID為n的文件

-gid n :尋找用戶組ID為n的文件

-group name :尋找群組名稱為name的所有文件

-user name :尋找用戶名稱為name的所有文件

-nouser :尋找文件所有者不存在 /etc/passwd 的人(可以查找不太正常的文件)

-nogroup  : 尋找文件的所有用戶組不存在於 /etc/group 中的文件

如果你將某個賬戶刪除了,該賬戶曾經建立的文件就成了無主的非正常文件,這時候可以利用 -nouser來找出該類型的文件

3. 與文件權限及名稱有關的參數

(1)-name [filename] : 查找文件名為filename的文件

從以上的例子中我們可以看出,find命令需要一個路徑名作為查找范圍,find會深入到這個路徑的每一個子目錄中去尋找,打印文件的絕對路徑。

如果指定路徑為“/”,就查找整個文件系統。-name選項指定了文件名,-printf表示將結果輸出到屏幕上,-type選項用來定位特殊文件類型。

(2)-size [+-]SIZE : 查找比"SIZE"還要大(+)或小(-)的文件 (SIZE的規格有:① c :代表byte ②k :代表1024 bytes) ; 要找比50k還要大的文件時就用" -size +50k"

(3)-type [TYPE] :查找文件類型為TYPE的文件

-type選項常見的參數:

參數 含義 b 塊設備文件 c 字符設備文件 d 目錄文件 f 普通文件 p 命名管道 l 符號鏈接

(4)-perm [mode] : 查找文件權限剛好等於"mode"的文件,這個"mode"為類似chmod的屬性值

-perm [+mode] : 查找文件權限全部包含“mode”權限的文件

-perm [-mode] : 查找文件權限包含任一“mode”權限的文件

4.其它

-exec [command] : command為其他命令,-exec後面可接其它的命令來處理查找到的結果。

-exec 到 “ \; ”是關鍵字,代表find額外命令的開始到結束,這兩者之間就是find命令的額外命令

-print :將結果打印到屏幕上,默認操作

Copyright © Linux教程網 All Rights Reserved