find是文件查找工具,實時查找,速度慢,精確匹配
find命令基本使用格式
find [options] [查找路徑] [查找條件] [處理動作]
查找路徑:默認為當前目錄
查找條件:默認為查找指定路徑下的所有文件
處理動作:默認為顯示
1、查找條件
-name "文件名稱":支持使用globbing
*、?、[]、[^]
-iname "文件名稱":查找時不區分字符大小寫
-user UserName:根據屬主查找
-group GroupName:根據屬組查找
-uid UID:根據用戶id查找
-gid GID:根據組id查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
2、組合條件
-a:與,同時滿足
-o:或
-not,!:非,取反
-type:根據文件類型查找
f:普通文件
d:目錄
b:塊設備
c:字符設備
l:符號鏈接文件
p:命令管道
s:套接字
-size:根據文件大小查找
-size [+|-] #Unit (#-1)<x<=#
例如:-szie +2MB
常用單位:k,M,G
3、根據時間戳查找
以天為單位(time):
-atime [+|-]#:
+表示(#+1)天之外被訪問過
-表示#天之內被訪問過
無符號:表示(#+1)>x>=#天的時間段被訪問過
-mtime [+|-]#
-ctime [+|-]#
以分鍾為單位:
-amin [+|-]#
-mmin [+|-]#
-cmin [+|-]#
4、根據權限查找
-perm [+|-]MODE
MODE:精確匹配
+MODE:任何一類用戶的任何一位權限匹配,常用戶查找某類特定 權限是否存在
-MODE:沒類用戶的任何一位都匹配
文件權限是644
-perm 600:否
-perm +222:可以
-perm +002:否
-perm -444:可以
5、處理動作
-print:打印在標准輸出上
-ls:以長格式輸出個文件信息
-exec COMMAND {} \; :對查找到的文件執行指定的命令
-ok COMMAND {} \; : 交互式的exec
find把查找到的所有文件一次性地傳遞給-exec所指定的命令
# find -type f -exec mv {} {}.bak \;
find | xargs COMMAND
# find -type f | xargs ls -l
6、工作中的實際應用
名字為:reso\0000000055c80c920156220f187420d0\402881e0391f602e0139c35b6f376a07\S12的文件刪除方法
# find . -name '*\\*' -exec rm {} \;
名字為:reso\0000000057078f240157192492910840\402881e031d6c5eb0131dc075cff03a3的目錄的刪除犯法
# find . -type d -a -name '*\\*' -exec rm -rf {} \;
之查找當前目錄,不進行遞歸查找的方法:
# find . ! -name "." -prune -name "*.html" 或者
# find . -name "*html" -maxdepth 1 (此方法會有警告)
