小編給大家分享一下Linux中如何使用find命令,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣,域名注冊(cè),網(wǎng)頁(yè)空間,綿陽(yáng)服務(wù)器托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)公司。
find的基本語(yǔ)法格式:
find [查找位置] [查找標(biāo)準(zhǔn)] [處理動(dòng)作]
查找位置:默認(rèn)為當(dāng)前目錄,可以指定多個(gè)目錄,多個(gè)之間用空格
查找標(biāo)準(zhǔn):默認(rèn)為查找指定目錄下的所有文件
處理動(dòng)作:顯示到標(biāo)準(zhǔn)輸出,默認(rèn)為print
剖析find的查找標(biāo)準(zhǔn)可分為哪些:
1)文件名
-name "文件名稱" : 根據(jù)文件名查找,支持glob
-iname "文件名稱",根據(jù)文件名查找,不區(qū)分大小寫
2)文件的屬主、屬組
-user "USERNAME" : 根據(jù)屬主查找
-group "GROUP" : 根據(jù)屬組查找
-uid "UID" : 根據(jù)UID查找
-gid "GID" : 根據(jù)GID查找
-nouser : 查找沒(méi)有屬主的文件
-nogroup : 查找沒(méi)有屬組的文件
代碼如下:
[root@Redhat6 /]# find / -nouser -nogroup #沒(méi)有屬主,也沒(méi)有屬組
/tmp/user1dir
[root@Redhat6 /]# ls -ld /tmp/user1dir/ #驗(yàn)證查找的文件是否符合要求,文件沒(méi)有用戶表示屬主和屬組,但會(huì)以ID號(hào)來(lái)表示
drwxrwxr-x 2 500 500 4096 Jul 23 10:36 /tmp/user1dir/
[root@Redhat6 /]# find / -user root -gid 500 #查找用戶為root,gid為500
/tmp/user1dir
[root@Redhat6 /]# ls -ld /tmp/user1dir/
drwxrwxr-x 2 root 500 4096 Jul 23 10:36 /tmp/user1dir/
3)文件的類型
-type
f 文件
d 目錄
b 塊設(shè)備
c 字符設(shè)備
l 符合鏈接文件
p 命令管道文件
s 套接字文件
4)文件的大小
-size
#[k|M|G]:#表示數(shù)字,匹配的時(shí)候?yàn)槟:ヅ?/strong>
+#[k|M|G]:+#表示大于,匹配的結(jié)果大于#
-#[k|M|G] :-#表示小于,匹配的結(jié)果是小于#
5)文件修改時(shí)間
-atime [+|-]# :訪問(wèn)時(shí)間,默認(rèn)為天,#表示#天的這個(gè)時(shí)間點(diǎn),+#表示至少有#天沒(méi)訪問(wèn) , -#表示#天之內(nèi)沒(méi)訪問(wèn)
-mtime [+|-]# : 修改時(shí)間,#表示#天的這個(gè)時(shí)間點(diǎn)沒(méi)有被修改,+#表示至少有#天沒(méi)有修改 , -#表示#天之內(nèi)沒(méi)有修改
-ctime [+|-]# : 改變時(shí)間,#表示#天的這個(gè)時(shí)間點(diǎn)沒(méi)有被改變,+#表示至少有#天沒(méi)有被改變 , -#表示#天之內(nèi)沒(méi)有被改變
-amin [+|-]# : 時(shí)間為分鐘,#表示#分鐘的這個(gè)時(shí)間點(diǎn)沒(méi)有被訪問(wèn),+#表示至少有#分鐘沒(méi)有被訪問(wèn) , -#表示#分鐘之內(nèi)沒(méi)訪問(wèn)
-mmin [+|-]# :時(shí)間為分鐘,#表示#分鐘的這個(gè)時(shí)間點(diǎn)沒(méi)有被修改,+#表示至少有#分鐘沒(méi)有被修改 , -#表示#分鐘之內(nèi)沒(méi)有被修改
-cmin [+|-]# :時(shí)間為分鐘,#表示#分鐘的這個(gè)時(shí)間點(diǎn)沒(méi)有被改變,+#表示至少有#分鐘沒(méi)有被改變 , -#表示#分鐘之內(nèi)沒(méi)有被改變
6)文件權(quán)限
-perm [+|-] MODE
不帶[+|-]表示精確權(quán)限匹配,
+表示任何一類用戶的任何一位權(quán)限匹配
- 表示每類用戶的每位權(quán)限都匹配
find在查找標(biāo)準(zhǔn)時(shí)支持組合查找條件,在使用組合查找條件時(shí)要考慮優(yōu)先級(jí),優(yōu)先級(jí)為順序?yàn)榉?rarr;與→或,在組合參數(shù)是想改變優(yōu)先級(jí)可以用()來(lái)提升優(yōu)先級(jí)。
-a (and) 與默認(rèn)是與
-o (or) 或
-not,! 非
find的處理動(dòng)作可以是:
-print 默認(rèn)為輸出
-ls 顯示查找到的文件的詳細(xì)信息
-ok COMMAND \; 要確認(rèn)
-exec COMMAND \; 其中COMMAND中有對(duì)查找到的文件進(jìn)行操作時(shí),用{}來(lái)替代查找到的 文件,\;表示使用-exec的結(jié)束符,是固定格式; 使用-exec來(lái)出來(lái)查找的文件時(shí),還可以通過(guò)管道送給xargs命令來(lái)解決,xargs在執(zhí)行命令時(shí),如果有對(duì)文件進(jìn)行操作則用-i選項(xiàng),{}也表示要操作的文件。
代碼如下:
1、查找/var目錄下屬主為root并且屬組為mail的所有文件;
find /var -user root -group mail
2、查找/usr目錄下不屬于root,bin,或student的文件;
find /usr -not \( -user root -o -user bin -o -user student \)
find /usr -not -user root -a -not -user bin -a -not -user student
3、查找/etc目錄下最近一周內(nèi)內(nèi)容修改過(guò)且不屬于root及student用戶的文件;
find /etc -mtime -7 -a -not -user root -a -not -user student
find /etc -mtime -7 -a -not \( -user root -o -user student \)
4、查找當(dāng)前系統(tǒng)上沒(méi)有屬主或?qū)俳M且最近1天內(nèi)曾被訪問(wèn)過(guò)的文件,并將其屬主屬組均修改為root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5、查找/etc目錄下大于1M的文件,并將其文件名寫入/tmp/etc.largefiles文件中;
find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目錄下所有用戶都沒(méi)有寫權(quán)限的文件,顯示出其詳細(xì)信息;
find /etc -not -perm +222
7、刪除類型不是目錄,而且沒(méi)有屬主的文件;
find / -not -type d -a -nouser -exec rm -f {} \;
find / -not -type d -a -nouser | xargs -i rm -f {}
以上是“Linux中如何使用find命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!