find:通過周遊指定的目标目錄,實時查找符合指定屬性的檔案
優點:精确比對進行查找
缺點:速度略慢
用法:
find [OPTION] [查找路徑] [查找條件] [處理動作]
查找路徑:預設為目前路徑
查找條件:預設為指定路徑下的所有檔案
處理動作:預設是在螢幕顯示出來
查找條件:
-name:查找時差別檔案大小寫,支援glob
*,?,[],[^]
-iname:查找時不區分檔案大小寫
-user USERNAME:根據檔案屬主查找
-group USERNAME:根據檔案屬組查找
-uid UID:根據指定的UID查找
當原有的使用者被删除時,他之前所建立的檔案的屬主屬組,變成他之前帳号的uig和gid
-gid GID:根據指定的GID查找
-nouser:查找沒有屬主的檔案
-nogroup:查找沒有屬組的檔案
-type TYPE:根據檔案類型查找
-size TYPE:根據檔案大小查找
-atime [+|-]#:最近幾天通路過的檔案
-mtime[+|-]#: 最近幾天修改過的檔案
-ctime[+|-]#: 最近幾天改變的檔案
-amin[+|-]#: 最近幾分鐘内通路過的檔案
-mmin[+|-]#: 最近幾分鐘内修改過的檔案
-cmin[+|-]#: 最近幾分鐘内改變過的檔案
-perm [+|-]MODE:根據權限查找
-maxdepth: 查找最在深度,例:-maxdepth 1表示隻在目前目錄下找,而不去找目前目錄下的目錄
-mindepth: 查找最小深度
組合查找條件:
-a:與 當不帶此參數,同時有2個操作時也表示與
-o:或者
!, -not:非
根據檔案類型查找
-type TYPE:
f:普通檔案
d:目錄檔案
l:符号連結檔案
b:塊裝置
c:字元設定檔案
p:指令名管道
s:表示套接字檔案
根據檔案大小查找
-size TYPE:
常用機關:k,M,G
+;大于
-;小于
什麼都不帶表示為精确的大小
#UNIT:表示 #-1< x <=# 以2k為例;2-1< x <=2 查找的是0大于1k和小于等于2k的所有檔案都符合
-#UNIT:x <= #-1 以2k為例:x <= 2-1查找的是小于等于1k的所有檔案
+#UNIT:x > # 以2k為例:x > 2查找的是大于2k的所有檔案
根據時間戳查找:
以“天”為機關:
-atime [+|-]#:最近幾天通路過的檔案
# <= x < #+1
比如想要查找3天前通路的檔案 -atime 3
輸出的結果應該為大于等于3天,小于4天的内容
-#: x < #
+#:x >= #+1
-mtime[+|-]#:最近幾天修改過的檔案
-ctime[+|-]#:最近幾天改變的檔案
以“分鐘”為機關:
-amin[+|-]#:最近幾分鐘内通路過的檔案
-mmin[+|-]#:最近幾分鐘内修改過的檔案
-cmin[+|-]#:最近幾分鐘内改變過的檔案
根據權限查找:
-perm [+|-]MODE:
MODE:精确比對權限
例:find ./ -perm 755 #查找指定權限為755的檔案
/MODE(在centos6,7上面用/号,表示+号):任何一類使用者的權限隻要包含對其指定的任何一位權限即可
例:600權限 随便比對一類就可以,要麼屬主是6,要麼屬組是0,要麼其它是0,都比對
-MODE:每一類使用者的權限都包含對其指定的所有權限,與權限
例:找到字尾為txt的檔案,并且具有執行的檔案(u,g,o任意一個具有x的都可以)
#find ./ -name "*.txt" -a -perm /a+x
找到後的處理操作:
-print:預設動作,列印至螢幕
-delete:删除查找到的檔案
-ls:顯示找到的檔案的詳細屬性
-fls /path/to/somewhere:查找到的所有檔案的長格式資訊儲存至指定檔案中;
-exec COMMAND {} \;執行其它的操作,沒有互動,直接進行操作
{}:表示找到的檔案名
{}:用于引用查找到的檔案名稱自身
-ok COMMAND {} \;對查找到的每個檔案執行由COMMAND指定的指令;在執行指令前會進行互動式提示
例:find ./ -name "*.txt" -a -perm /u+x -ok rm -rf {} \;(在執行指令前進行提示)
注意:find指令會一次性找到所有符合條件的檔案,并一同傳遞給後面的指令,如果後面的指令不能接收較長的參數時,會報錯;解決辦法用xargs指令一條一條的傳遞給COMMAND,而不同時傳遞
用法執行個體:
例1:同時查找2個檔案
find ./ -name "3.log" -o -name "4.log"
例2:同時排除2個檔案
find ./ ! \( -name "3.log" -o -name "4.log" \)
find ./ ! -name "3.log" -a ! -name "4.log"
本文轉自激情燃燒的歲月部落格51CTO部落格,原文連結http://blog.51cto.com/liuzhengwei521/1884742如需轉載請自行聯系原作者
weilovepan520