查詢命令find
find [OPTION]... [查詢路徑] [查詢條件] [處理動作]
查詢路徑:指定具體目標路徑;預設為當前目錄
查詢條件:指定的查詢標準,可以檔名、大小、型別、許可權等標準進行;
預設為找出指定路徑下的所有檔案
處理動作:對符合條件的檔案做操作,預設輸出至螢幕
查詢條件
-name "檔名稱":支援使用glob , ?, [], [^]
-iname "檔名稱":不區分字母大小寫
-inum n 按inode號查詢
-samefile name 相同inode號的檔案
-links n 連結數為n的檔案
-regex “PATTERN”:以PATTERN匹配整個檔案路徑,而非檔名稱
根據屬主、屬組查詢:
-user USERNAME:查詢屬主為指定使用者(UID)的檔案
-group GRPNAME: 查詢屬組為指定組(GID)的檔案
-uid UserID:查詢屬主為指定的UID號的檔案
-gid GroupID:查詢屬組為指定的GID號的檔案
-nouser:查詢沒有屬主的檔案
-nogroup:查詢沒有屬組的檔案*
根據檔案型別查詢
-type TYPE
• f: 普通檔案
• d: 目錄檔案
• l: 符號連結檔案
• s:套接字檔案
• b: 塊裝置檔案
• c: 字元裝置檔案
• p: 管道檔案
空檔案或目錄
-empty
find /app -type d -empty
組合條件:
與:-a
或:-o
非:-not !
找出/tmp目錄下,屬主不是root,且檔名不以f開頭的檔案
find /tmp ( -not -user root -a -not -name 'f' ) -ls
find /tmp -not ( -user root -o -name 'f' ) –ls
排除目錄 示例:
查詢/etc/下,除/etc/sane.d目錄的其它所有.conf字尾的檔案
find /etc -path ‘/etc/sane.d’ -a –prune -o -name “.conf”
查詢/etc/下,除/etc/sane.d和/etc/fonts兩個目錄的所有.conf字尾的檔案
find /etc ( -path "/etc/sane.d" -o -path "/etc/fonts" ) -a -prune -o -name ".conf"
根據檔案大小來查詢:
-size [+|-]#UNIT
常用單位:k, M, G,c(byte)
#UNIT: (#-1, #]
如:6k 表示(5k,6k]
-#UNIT:[0,#-1]
如:-6k 表示[0,5k]
+#UNIT:(#,∞)
如:+6k 表示(6k,∞)
根據時間戳:
以“天”為單位
-atime [+|-]#,
#: [#,#+1)
+#: [#+1, ∞ ]
-#: [0,#)
-mtime
-ctime
以“分鐘”為單位
-amin
-mmin
-cmin
find
根據許可權查詢:
-perm [/|-]MODE
MODE: 精確許可權匹配
/MODE:任何一類(u,g,o)物件的許可權中只要能一位匹配即可,或關係,+
從centos7開始淘汰
-MODE:每一類物件都必須同時擁有指定許可權,與關係
0 表示不關注
• find -perm 755 會匹配許可權模式恰好是755的檔案
• 只要當任意人有寫許可權時,find -perm +222就會匹配
• 只有當每個人都有寫許可權時,find -perm -222才會匹配
• 只有當其它人(other)有寫許可權時,find -perm -002才會匹配