find指令詳解:
find是實時查找工具,通過便利指定起始路徑下檔案系統層級結構完成檔案查找:
工作特性:
查找速度慢,精确查找,實時查找
用法如下:
find
[OPTIONS] [查找起始路徑] [查找條件] [處理動作]
1)查找起始路徑:指定具體搜尋目标起始路徑:預設為目前目錄
2)查找條件:指定的查找标準,可以根據檔案名、大小、類型、從屬關系、權限等等标準進行;查找條件預設為找出指定路徑下的所有檔案;
3)處理動作:對符合 查找條件的檔案作出的操作,例如複制、粘貼、删除等操作,預設為輸出至标準輸出
查找條件:
表達式即為選項和測試
測試:結果通常為布爾型(要麼真,要麼假)
a,根據檔案名查找:
-name
"pattern"
-iname
這種檔案查找支援glob風格的通配符即:*,?, [],[^]
-regex pattern:基于正規表達式模式查找檔案,比對的是整個路徑,而非其名
b,根據檔案從屬關系查找:
-user
USERNAME:查找屬主指定使用者的所有檔案
-group
GRPNAME:查找屬組指定組的所有檔案
-uid
UID:查找屬主指定的UID的所有檔案;
-gid GID:查找屬組指定的GID的所有檔案;
-nouser:查找沒有屬主的檔案;
-nogroup:查找沒有屬組的檔案
c,根據檔案的類型查找:
-type TYPE:
f:普通檔案
d:目錄檔案
l:符号連結檔案
b:塊裝置檔案
c:字元裝置檔案
p:管道檔案
s:套接字檔案
組合測試:
與:-a,預設組合邏輯
或:-o
非:-not,!
d,根據檔案大小查找:
-size [+|-]#UNIT
常用機關:k,M , G
#UNIT:(#-1,#]
-#UNIT:[0,#-1]
+#UNIT:(0,00)
e,根據時間戳查找:
以“天”為機關:
-atime [+|-]#
#:[#,#-1)
-#:(#,0]
+#:(00,#-1]
-mtime
-ctime
以“分鐘”機關:
-amin
-mmin
-cmin
f,根據權限查找:
-perm [/|-]mode
mode:精确權限比對:
/mode:任何一類使用者(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足,9位權限之間存在“或”關系;
-mode:每一類使用者(u,g, o)的權限中的每一位(r,w,x)同時符合條件既滿足,9位權限之間存在“與”關系
處理動作:
-print:輸出标準輸出,預設動作
-ls
-delete
-fls
/PATH/TO/SOMEFILE:
-ok
COMMAND {} \;
:對查找到的每個檔案執行由COMMAND表示的指令,每次操作都有使用者進行确認
-exec
COMMAND {} \; :對查找到的每個檔案執行由COMMAND表示的指令:
注:find傳遞查找到的檔案路徑至後面的指令時,是先查找出所有符合條件的檔案路徑,并一次性傳遞給後面的指令;但是有些指令不能接受過長的參數,此時指令執行會失敗(另一種方式可規避此問題:find | xargs COMMAND)