|
“一切皆文件”是 Linux的哲學思想之一, 這條命令可以統(tǒng)計當前l(fā)inux系統(tǒng)中有多少文件ls -R / |wc -l &建議放在后臺執(zhí)行,因為你的系統(tǒng)文件很多則會消耗很多時間,你可以看見這個結(jié)果是龐大的,linux的系統(tǒng)中的文件實在是太多了,怎么樣才能快速而且精確的在linux系統(tǒng)找出你想要的文件呢?Linux 的find命令提供了很強大的功能,學好find命令的使用,可以給你節(jié)省大量花費在找文件的時間。 find的基本語法格式: find [查找位置] [查找標準] [處理動作] 查找位置:默認為當前目錄,可以指定多個目錄,多個之間用空格 查找標準:默認為查找指定目錄下的所有文件 處理動作:顯示到標準輸出,默認為print 剖析find的查找標準可分為哪些: 1)文件名 -name "文件名稱" : 根據(jù)文件名查找,支持glob
-iname "文件名稱",根據(jù)文件名查找,不區(qū)分大小寫
2)文件的屬主、屬組 -user "USERNAME" : 根據(jù)屬主查找 -group "GROUP" : 根據(jù)屬組查找 -uid "UID" : 根據(jù)UID查找 -gid "GID" : 根據(jù)GID查找 -nouser : 查找沒有屬主的文件 -nogroup : 查找沒有屬組的文件
復制代碼 代碼如下:[root@Redhat6 /]# find / -nouser -nogroup #沒有屬主,也沒有屬組 /tmp/user1dir [root@Redhat6 /]# ls -ld /tmp/user1dir/ #驗證查找的文件是否符合要求,文件沒有用戶表示屬主和屬組,但會以ID號來表示 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 塊設備 c 字符設備 l 符合鏈接文件 p 命令管道文件 s 套接字文件
4)文件的大小 -size #[k|M|G]:#表示數(shù)字,匹配的時候為模糊匹配 +#[k|M|G]:+#表示大于,匹配的結(jié)果大于# -#[k|M|G] :-#表示小于,匹配的結(jié)果是小于#
5)文件修改時間 -atime [+|-]# :訪問時間,默認為天,#表示#天的這個時間點,+#表示至少有#天沒訪問 , -#表示#天之內(nèi)沒訪問 -mtime [+|-]# : 修改時間,#表示#天的這個時間點沒有被修改,+#表示至少有#天沒有修改 , -#表示#天之內(nèi)沒有修改 -ctime [+|-]# : 改變時間,#表示#天的這個時間點沒有被改變,+#表示至少有#天沒有被改變 , -#表示#天之內(nèi)沒有被改變 -amin [+|-]# : 時間為分鐘,#表示#分鐘的這個時間點沒有被訪問,+#表示至少有#分鐘沒有被訪問 , -#表示#分鐘之內(nèi)沒訪問 -mmin [+|-]# :時間為分鐘,#表示#分鐘的這個時間點沒有被修改,+#表示至少有#分鐘沒有被修改 , -#表示#分鐘之內(nèi)沒有被修改 -cmin [+|-]# :時間為分鐘,#表示#分鐘的這個時間點沒有被改變,+#表示至少有#分鐘沒有被改變 , -#表示#分鐘之內(nèi)沒有被改變
6)文件權限 -perm [+|-] MODE 不帶[+|-]表示精確權限匹配, +表示任何一類用戶的任何一位權限匹配 - 表示每類用戶的每位權限都匹配
find在查找標準時支持組合查找條件,在使用組合查找條件時要考慮優(yōu)先級,優(yōu)先級為順序為非→與→或,在組合參數(shù)是想改變優(yōu)先級可以用()來提升優(yōu)先級。 -a (and) 與默認是與 -o (or) 或 -not,! 非 find的處理動作可以是: -print 默認為輸出 -ls 顯示查找到的文件的詳細信息 -ok COMMAND \; 要確認 -exec COMMAND \; 其中COMMAND中有對查找到的文件進行操作時,用{}來替代查找到的 文件,\;表示使用-exec的結(jié)束符,是固定格式; 使用-exec來出來查找的文件時,還可以通過管道送給xargs命令來解決,xargs在執(zhí)行命令時,如果有對文件進行操作則用-i選項,{}也表示要操作的文件。 復制代碼 代碼如下: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)容修改過且不屬于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、查找當前系統(tǒng)上沒有屬主或?qū)俳M且最近1天內(nèi)曾被訪問過的文件,并將其屬主屬組均修改為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目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息; find /etc -not -perm +222 7、刪除類型不是目錄,而且沒有屬主的文件; find / -not -type d -a -nouser -exec rm -f {} \; find / -not -type d -a -nouser | xargs -i rm -f {} 本文出自 “技術之路---桀” 博客 |
|
|