国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

Linux find命令10種使用方法技巧分享

2020-06-13 11:55:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

find命令的工作方式是沿著文件層次結(jié)構(gòu)向下遍歷,匹配符合條件的文件,并執(zhí)行相應(yīng)的操作。

1、根據(jù)文件名或正則表達(dá)式匹配搜索

選項(xiàng)-name的參數(shù)指定了文件名所必須匹配的字符串,我們可以將通配符作為參數(shù)使用,“*.txt”匹配所有以.txt結(jié)尾的文件名。

 

復(fù)制代碼
代碼如下:

[root@localhost test]# touch {data,log,file,File,LOG}_{1,2,3,4,5,6}_{.txt,.pdf,.log,.conf}
[root@localhost test]# find . -name "*.txt" –print

 

如果想匹配多個(gè)條件中的一個(gè),可以使用-o參數(shù)。
 

復(fù)制代碼
代碼如下:
[root@localhost test]# find . /( -name "*.txt" -o -name "*.log" /)

選項(xiàng)-iname忽略字母大小寫
選項(xiàng)-path的參數(shù)可以使用通配符來(lái)匹配文件路徑或文件。

 

2、否定參數(shù)

find 用 “!”來(lái)否定參數(shù),匹配所有不以.txt結(jié)尾的文件名。

 

復(fù)制代碼
代碼如下:

[root@localhost test]# find . ! -name "*.txt" –print

 

3、基于目錄深度的搜索

find命令在使用時(shí)會(huì)遍歷所有的子目錄,我們可以采用-maxdepth和-mindepth來(lái)限制find命令遍歷的深度。
-maxdepth: 指定最大深度;
-mindepth:指定最小深度。

 

復(fù)制代碼
代碼如下:
[root@localhost ~]# find . -maxdepth 1 -type f

 

列出當(dāng)前目錄的所有普通文件,這兩個(gè)命令要緊跟在目標(biāo)路徑之后。

4、根據(jù)文件類型搜索

 

復(fù)制代碼
代碼如下:
find . –type d –print

 

 

文件類型 類型參數(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ù),單位是天,可以使用+表示大于,-表示小于。

 

復(fù)制代碼
代碼如下:

[root@localhost ~]# find . -type f -atime 7
#打印出正好在7天前被訪問(wèn)過(guò)的文件
[root@localhost ~]# find . -type f -mtime +7
#打印修改時(shí)間大于7天的文件
[root@localhost ~]# find . -type f -ctime -7
#打印出修改時(shí)間小于7天的文件

 

類似的參數(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é)。

 

復(fù)制代碼
代碼如下:
[root@localhost tmp]# find . -type f -size 2k
#等于2k的文件
[root@localhost tmp]# find . -type f -size +2k
#大于2k的文件
[root@localhost tmp]# find . -type f -size -2k
#小于2k的文件

 

7、刪除匹配的文件

-delete可以用來(lái)刪除find查找到的匹配文件。
 

復(fù)制代碼
代碼如下:
[root@localhost tmp]# find . -type f -name ".sWp" –delete
#刪除當(dāng)前目錄下所有的.swp文件

 

8、基于文件權(quán)限和所有權(quán)的匹配

 

復(fù)制代碼
代碼如下:
[root@localhost tmp]# find . -type f -perm 644
#查找當(dāng)前目錄權(quán)限為644的文件
[root@localhost tmp]# find . -type f -user reed
#查找當(dāng)前目錄文件所有者為reed的文件

 

9、結(jié)合find 執(zhí)行命令或動(dòng)作

find命令可以借助選項(xiàng)-exec與其他命令進(jìn)行結(jié)合。
 

復(fù)制代碼
代碼如下:

[root@localhost tmp]# find . -type f -user reed -exec chown cathy {} /;
#將當(dāng)前目錄文件擁有者為reed的文件改為cathy

 

{ }是一個(gè)特殊的字符串,對(duì)于每一個(gè)匹配的文件,{ }會(huì)被替換成相應(yīng)的文件名。
 

復(fù)制代碼
代碼如下:
[root@localhost test]# find . -type f -mtime +10 -name "*.log" -exec cp {} /data/bk_log /;
#將當(dāng)前目錄大于10天的log文件復(fù)制到/data/bk_log目錄
[root@localhost test]# find /tmp/test/ -type f -name "*.txt" -exec printf "Text file: %s/n" {} /;
Text file: /tmp/test/File_6_.txt
Text file: /tmp/test/file_4_.txt
Text file: /tmp/test/data_3_.txt
Text file: /tmp/test/data_1_.txt
#列出目錄的所有txt文件

 

10、跳過(guò)指定的目錄

有時(shí)間我們查找時(shí)需要跳過(guò)一些子目錄
 

復(fù)制代碼
代碼如下:
[root@localhost test]# find . /( -name "jump_dir" -prune /) -o /( -type f -print /)
# /( -name "jump_dir" -prune /) 指定要跳過(guò)的子目錄的名字

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 都匀市| 繁峙县| 阳朔县| 大悟县| 固镇县| 高州市| 平潭县| 四会市| 聂拉木县| 栾城县| 嘉义市| 昌图县| 象山县| 临澧县| 红安县| 静海县| 兖州市| 马山县| 池州市| 莒南县| 宁化县| 山阳县| 梁山县| 沙雅县| 台南市| 威信县| 镇宁| 太仆寺旗| 乾安县| 黄平县| 瓦房店市| 平顶山市| 襄垣县| 荣成市| 诸暨市| 河津市| 长顺县| 松江区| 南充市| 泰来县| 屯昌县|