find命令的工作方式是沿著文件層次結(jié)構(gòu)向下遍歷,匹配符合條件的文件,并執(zhí)行相應(yīng)的操作。
1、根據(jù)文件名或正則表達(dá)式匹配搜索
選項(xiàng)-name的參數(shù)指定了文件名所必須匹配的字符串,我們可以將通配符作為參數(shù)使用,“*.txt”匹配所有以.txt結(jié)尾的文件名。
如果想匹配多個(gè)條件中的一個(gè),可以使用-o參數(shù)。
2、否定參數(shù)
find 用 “!”來(lái)否定參數(shù),匹配所有不以.txt結(jié)尾的文件名。
3、基于目錄深度的搜索
find命令在使用時(shí)會(huì)遍歷所有的子目錄,我們可以采用-maxdepth和-mindepth來(lái)限制find命令遍歷的深度。
-maxdepth: 指定最大深度;
-mindepth:指定最小深度。
列出當(dāng)前目錄的所有普通文件,這兩個(gè)命令要緊跟在目標(biāo)路徑之后。
4、根據(jù)文件類型搜索
| 文件類型 | 類型參數(shù) |
| 普通文件 | f |
| 符號(hào)文件 | l |
| 目錄 | d |
| 字符設(shè)備 | c |
| 塊設(shè)備 | b |
| 套接字 | s |
| fifo | p |
5、根據(jù)文件時(shí)間進(jìn)行搜索
Linux文件系統(tǒng)中每一個(gè)文件都有三種時(shí)間戳
訪問(wèn)時(shí)間(-atime):用戶最近一次訪問(wèn)文件的時(shí)間;
修改時(shí)間(-mtime):文件內(nèi)容最后一次被修改的時(shí)間。
變化時(shí)間(-ctime):文件元數(shù)據(jù)(metadata,例如權(quán)限或所有權(quán))最后一次改變的時(shí)間。
-atime,-mtime,-ctime作為時(shí)間參數(shù),單位是天,可以使用+表示大于,-表示小于。
類似的參數(shù)還有,-amin(訪問(wèn)時(shí)間),-mmin(修改時(shí)間),-cmin(變化時(shí)間),以分鐘為單位。
find另一個(gè)漂亮的特性是-newer參數(shù),我們可以指定一個(gè)用于比較時(shí)間戳的參數(shù)文件,然后找出比參數(shù)文件更新的所有文件。
find . –type f –newer file.txt
p 在當(dāng)前目錄找出比f(wàn)ile.txt修改時(shí)間更長(zhǎng)的所有文件。
6、基于文件大小的搜索
搜索可以使用的單位
b——塊(512字節(jié)); c——字節(jié); w——字(2字節(jié));
k——千字節(jié) ; M——兆字節(jié); G——吉字節(jié)。
7、刪除匹配的文件
-delete可以用來(lái)刪除find查找到的匹配文件。
8、基于文件權(quán)限和所有權(quán)的匹配
9、結(jié)合find 執(zhí)行命令或動(dòng)作
find命令可以借助選項(xiàng)-exec與其他命令進(jìn)行結(jié)合。
{ }是一個(gè)特殊的字符串,對(duì)于每一個(gè)匹配的文件,{ }會(huì)被替換成相應(yīng)的文件名。
10、跳過(guò)指定的目錄
有時(shí)間我們查找時(shí)需要跳過(guò)一些子目錄
|
新聞熱點(diǎn)
疑難解答
圖片精選