1. 程式人生 > >文件查找——find命令

文件查找——find命令

用戶

find命令具有精確查找的功能,能為用戶查找指定目錄下的符合查找要求的所有具有讀寫權限的文件,並顯示到文件屏幕上;

find [option] [查找路徑] [查找條件] [處理動作]

查找路徑:指定查詢路徑,默認情況下為當前目錄;

查找條件:可以根據屬主,屬組,沒有屬主,沒有屬組,文件名字,文件大小,文件訪問時間等查詢文件;

處理動作:對於符合條件的文件進行某個處理動作,默認將查找結果顯示到屏幕;


查找條件:

-name 文件名稱:根據文件名進行查找;

支持使用通配符:?,*,[],[^];

技術分享

技術分享

-iname 文件名稱:根據文件名進行查找,不區分大小寫;

支持使用通配符:?,*,[],[^];

技術分享


-links n:根據鏈接數為n的文件進行查找;

技術分享


-inum inode:根據inode編號進行查找;

技術分享

-size [+|-| ]n[cwbkMG]:根據文件的大小進行查找;

+3k:表示大小為3k至無窮的文件;

-3k:表示大小為0k到2k的文件;

3k:表示大小為1k到2k的文件;

技術分享


根據時間戳進行查找:

-atime [+|-]n:根據文件訪問時間進行查找,以天為單位;

-ctime [+|-]n:根據文件改變時間進行查找,以天為單位;

-mtime [+|-]n:根據文件修改時間進行查找,以天為單位;

-amin [+|-]n:根據文件訪問時間進行查找,以分鐘為單位;

-cmin [+|-]n:根據文件改變時間進行查找,以分鐘為單位;

-mmin [+|-]n:根據文件修改時間進行查找,以分鐘為單位;

-atime +3:表示四天以前被訪問的文件;

-atime -3:表示三天以內被訪問的文件;

-atime 3:表示三天到四天以內被訪問的文件;

例 顯示根目錄下最近三十天沒有訪問過的文件;

技術分享

根據文件類型查找:

-type 文件類型

b:塊設備

c:字符設備

d:目錄文件

f:普通文件

l:符號鏈接文件

p:管道文件

s:套接字文件

例 顯示/etc下為目錄的文件

技術分享


根據文件的屬主和屬組進行查找:

-user uname:根據屬主為指定用戶的用戶名進行查找

-uid UID:根據屬主

-group gname

-gid GID

例 搜索根目錄下屬主為wjq,屬組為wjq的文件;

技術分享


-nogroup:在文件的屬組上,沒有組所對應的組名;

-nouser:在文件的屬主上沒有用戶對應的用戶名;

技術分享


組合條件:

-a:與

-o:或

-not,!:取反;

邏輯組合條件遵循德摩根定律:

非(A與B) == 非A或非B

非(A或B) == 非A與非B

技術分享

根據權限查找:

-perm [/|-]mode

mode:精確匹配指定權限;

/mode:隱含了邏輯或的關系,任何一個權限位的權限中,只要有一位匹配,即可滿足條件;

-mode:隱含了邏輯與的關系,每一個權限位的權限中都必須同時包含指定權限位,才能滿足條件;

技術分享

處理動作:

-ls:在進行篩選文件後,將文件以ls -l顯示文件詳細信息;

-print:輸出到屏幕上,默認是存在的;

-exec COMMAND {} \; :對於查找到的結果執行COMMAND命令;

例 將根目錄下沒有屬主屬組的文件,將其設定為屬主為root,屬組為root的文件;

技術分享

例 將/etc下所有以a開頭的文件移動到/mnt/aaa中

技術分享

文件查找——find命令