在指定目錄下查找文件荆虱;
基本結(jié)構(gòu):find [paths] [expressions] [actions]
paths
: 接受一個(gè)或多個(gè)路徑作為搜索范圍,并在該路徑下遞歸搜索诉位;
expression
: 搜索條件,主要有以下幾種條件:
- 按文件名搜索:
-
-name
:區(qū)分大小寫(xiě)叁丧,-iname
:不區(qū)分大小寫(xiě)拥娄; -
?
:表示任何一個(gè)單一的符號(hào); -
*
: 表示任意數(shù)量(包括0)的位置符號(hào)牡昆; -
find /usr -name '*.txt'
: 查找/usr
目錄下所有文件名以.txt
結(jié)尾的文件摊欠; -
find /usr -name '????'
: 查找/usr
目錄下所有文件名剛好為4個(gè)字符的文件; - 有時(shí)候需要匹配完整的路徑播瞳,可以使用
-path
或-ipath
選項(xiàng)赢乓; -
find /usr -path '*/src/*.txt'
查找/usr下所有文件名以.txt
結(jié)尾的文件或目錄石窑,且該文件的父目錄必須是src
;
-
- 根據(jù)文件類型:
- 如果只想搜索得到文件或目錄姜贡,即不想它們同時(shí)出現(xiàn)在結(jié)果中棺棵,可以使用
-type
選項(xiàng)指定文件類型。 -
-type
選項(xiàng)最常用的參數(shù)如下:-
f
: 文件 -
d
: 目錄 -
l
: 符號(hào)鏈接
-
-
find /usr -type d -name 'python*'
檢索/usr
下所有文件名以python
開(kāi)頭的目錄母怜;
- 如果只想搜索得到文件或目錄姜贡,即不想它們同時(shí)出現(xiàn)在結(jié)果中棺棵,可以使用
- 檢索空文件:
-
find
命令支持-empty
選項(xiàng)用來(lái)檢索為空的文件或目錄苹熏”倚空文件即文件里沒(méi)有任何內(nèi)容,空目錄即目錄中沒(méi)有任何文件或子目錄干发。 -
find ~ -type d -empty
檢索用戶主目錄下所有的空目錄
-
- 反義匹配:
- 檢索 /usr 下所有文件名不以
.txt
為后綴的文件:find /usr -type f ! -name '*.txt'
- 檢索 /usr 下所有內(nèi)容不為空的文件:
find /usr -type f ! -empty
- 檢索 /usr 下所有文件名不以
- 根據(jù)文件的所屬權(quán)檢索:
- 為了檢索歸屬于特定用戶的文件或目錄枉长,可以使用
-user
選項(xiàng)。-group
選項(xiàng)則可以根據(jù)文件或目錄的屬組進(jìn)行檢索必峰。 -
find / -type f -user starky
檢索根目錄下所有屬主為 starky 的文件。
- 為了檢索歸屬于特定用戶的文件或目錄枉长,可以使用
- 根據(jù)時(shí)間日期進(jìn)行檢索:
- 有時(shí)候凭需,需要根據(jù)文件創(chuàng)建或修改的時(shí)間進(jìn)行檢索桂敛。
- Linux 系統(tǒng)中,與文件相關(guān)聯(lián)的時(shí)間參數(shù)有以下三種:
- 修改時(shí)間(Modification time):最后一次文件內(nèi)容有過(guò)更改的時(shí)間點(diǎn)薪伏;
- 訪問(wèn)時(shí)間(Access time):最后一次文件有被讀取過(guò)的時(shí)間點(diǎn)粗仓;
- 變更時(shí)間(Change time):最后一次文件有被變更過(guò)的時(shí)間點(diǎn)(如內(nèi)容被修改,或權(quán)限等 metadata 被修改)借浊;
- 與此對(duì)應(yīng)的是 find 命令中的
-mtime
,-atime
和-ctime
三個(gè)選項(xiàng)存捺。這三個(gè)選項(xiàng)的使用規(guī)則:-
-mtime 2
:該文件 2 天前被修改過(guò)曙蒸; -
-mtime -2
:該文件 2 天以內(nèi)被修改過(guò); -
-mtime +2
:該文件距離上次修改已經(jīng)超過(guò) 2 天時(shí)間肖油;
-
-
find /usr -type f -mtime 2
檢索 /usr 下兩天前被修改過(guò)的文件森枪。 - 如果覺(jué)得
-mtime
等選項(xiàng)以天為單位時(shí)間有點(diǎn)長(zhǎng)审孽,還可以使用-mmin
,-amin
显拳,-cmin
。 -
find /usr -type f -mtime +50 -mtime -100
檢索 /usr 下 50 到 100 天之前修改過(guò)的文件搓萧。 -
find /usr -type f -mtime 2 -amin 5
檢索 /usr 下兩天前被修改過(guò)且 5 分鐘前又讀取過(guò)的文件。
- 根據(jù)文件大小檢索:
-
-size
選項(xiàng)允許用戶通過(guò)文件大小進(jìn)行搜索(只適用于文件瘸洛,目錄沒(méi)有大蟹蠢摺) - 表示文件大小的單位由以下字符組成:
-
c
:字節(jié) -
k
:Kb -
M
:Mb -
G
:Gb
-
- 另外,還可以使用
+
或-
符號(hào)表示大于或小于當(dāng)前條件罕邀。 -
find / -size +1G
檢索文件大小高于 1 GB 的文件。
-
- 根據(jù)文件權(quán)限檢索:
- find 命令可以使用
-perm
選項(xiàng)以文件權(quán)限為依據(jù)進(jìn)行搜索养距。
- find 命令可以使用
- 對(duì)搜索結(jié)果執(zhí)行命令:
-
-delete
選項(xiàng)可以用來(lái)刪除搜索到的文件和目錄 - 如刪除 home 目錄下所有的空目錄:
find ~ -type d -empty -delete
-