find
正則表達式
find查找基礎:ide
find 查找路徑 查找標準 查找到之後的處理運做ui
查找路徑:默認爲當前目錄spa
查找標準:默認爲指定路徑下的全部文件orm
處理運做:默認爲顯示blog
匹配標準:圖片
-name 'FILENAME':對文件名做精確匹配get
文件名通配:it
*:任意長度的任意字符io
?
[]
-iname 'FILENAME': 文件名匹配時不區分大小寫
-regex PATTERN:基於正則表達式進行文件名匹配 注意:正則表達式這裏是所有的匹配,
下面來舉例說明:
查找/etc/目錄中名字包含passwd的全部文件
-user USERNAME: 根據屬主查找
-group GROUPNAME: 根據屬組查找
-uid UID: 根據UID查找(當UID所對應的用戶刪除後,就只剩下了UID的號,這是方便查找哪些被刪除用戶的殘留文件。)
-gid GID: 根據GID查找(同上)
-nouser:查找沒有屬主的文件
-nogroup: 查找沒有屬組的文件
-type
f: 普通文件
d:目錄
c:字符文件
b:塊設備
l:連接文件
p:管道
s:套接字
-size [+|-] (只要是符合標準的均可以顯示,包括子目錄例如:父目錄知足條件,若是要是子目錄中有知足條件的能夠被查找到)
#k(例如:10k那麼9-10k的都會顯示,他是會認爲9k多的也是10k)
#M
#G
組合條件:(默認是與)
-a
-o
-not
/tmp目錄,不是目錄,而且還不能套接字類型的文件
注意:這個是能夠組合使用的例如:find /tmp/ -not \( -type d -o -type s \) 等價於
find /tep/ -not -type d -not -type s
/tmp/test目錄下,屬主不是user1,也不是user2的文件;
按照時間查詢:
按照天數
-mtime:修改時間
-ctime:改變時間
-atime:進入時間
[+|-]#
按照分鐘數:
-mmin
-cmin
-amin
[+|-]#
按照權限查找
-perm MODE:精確匹配
/MODE: 任意一位匹配即知足條件
-MODE: 文件權限能徹底包含此MODE時才符合條件
-644
644: rw-r--r--
755: rwxr-xr-x
750: rwxr-x---
find ./ -perm -001
處理動做:
-print: 顯示
-ls:相似ls -l的形式顯示每個文件的詳細
-ok COMMAND {}(這裏是佔位符表示查詢的結果) \; 每一次操做都須要用戶確認
-exec COMMAND {} \;
來。。咱們來作題加深印象!!
一、查找/var目錄下屬主爲root而且屬組爲mail的全部文件;
二、查找/usr目錄下不屬於root,bin,或student的文件;
三、查找/etc目錄下最近一週內內容修改過且不屬於root及student用戶的文件;
find /etc -mtime -7 -not \ ( -user root -o -user student \)
四、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改成root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
五、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;
find /etc -size +1M >> /tmp/etc.largefiles
find /etc/ -size +1M -exec echo {} >> /tmp/etc.largefiles \;
六、查找/etc目錄下全部用戶都沒有寫權限的文件,顯示出其詳細信息;
find /etc -not -perm /222 -ls
xargs這個命令能夠總作在find後面(能夠不用佔位符,輸出的結果不是每行一個,而是用空格隔開)
例如;find /etc -size +1M |xargs echo >> /tmp/etc.largefiles