Find 命令詳解
find:
實時查找工具, 通過遍歷指定路徑完成文件查找;
工作特點:
查找速度略慢
精確查找
實時查找
可能只搜索用戶具備讀取和執行權限的目錄
語法:
find [OPTION]… [查找路徑] [查找條件] [處理動作]
查找路徑: 指定具體目標路徑; 默認為當前目錄
查找條件: 指定的查找標準, 可以文件名、 大小、 類型、權限等標準進行; 默認為找出指定路徑下的所有文件
處理動作: 對符合條件的文件做操作, 默認動作為標準輸出,輸出至屏幕
查找條件:
(1)根據文件名和inode查找:
-name “文件名稱“: 支持使用glob
*, ?, [], [^]
-iname “文件名稱“: 忽略字母大小寫
-inum n 按inode號查找
-samefile name 相同inode號的文件(其實等于查找硬鏈接,基本不用)
-links n 鏈接數為n的文件
-regex “PATTERN”: 以PATTERN匹配整個文件路徑字符串, 而不僅僅是文件名稱
(2)根據屬主、 屬組查找:
-user
USERNAME: 查找屬主為指定用戶(UID)的文件
-group GRPNAME: 查找屬組為指定組(GID)的文件
-uid UserID: 查找屬主為指定的UID號的文件
-gid GroupID: 查找屬組為指定的GID號的文件
-nouser: 查找沒有屬主的文件或目錄
-nogroup: 查找沒有屬組的文件或目錄
(3)根據文件類型查找:
-type TYPE:
f: 普通文件
d: 目錄文件
l: 符號鏈接文件
s: 套接字文件
b: 塊設備文件
c: 字符設備文件
p: 管道文件
(4)組合條件:
與: -a
或: -o
非: -not, !
(5)根據文件大小來查找:
-size
# 等于多少的文件
+# 大于多少的文件
-# 小于多少的文件
(6)根據時間戳:
以“ 天” 為單位;
-atime [+|-]#,
#:
[#,#+1)
+#:
[#+1,∞]
-#:
[0,#)
-mtime
-ctime
以“ 分鐘” 為單位:
-amin
-mmin
-cmin
(7)根據權限查找:
-perm
222 精確匹配有222權限的文件
-222 u,g,o必須全部符合
+222 u,g,o有一個符合就行(cen7是/222)
find -perm 755 會匹配權限模式恰好是755的文件
只要當任意人有寫權限時, find -perm +222就會匹配
只有當每個人都有寫權限時, find -perm -222才會匹配
只有當其它人( other) 有寫權限時, find -perm
-002才會匹配
處理動作:
-print: 默認的處理動作, 打印至屏幕;
-ls: 類似于對查找到的文件執行“ ls -l”命令
-delete: 刪除查找到的文件;不能刪除非空目錄
-fls file: 查找到的所有文件的長格式信息保存至指定文件中
-ok
COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令;
對于每個文件執行命令之前, 都會交互式要求用戶確認
-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令
{}: 用于引用查找到的文件名稱自身
;是固定用法
注意:
(1)find傳遞查找到的文件至后面指定的命令時, 查找到所有符合條件的文件一次性傳遞給后面的命令
(2)有些命令不能接受過多參數, 此時命令執行可能會失敗, 下面方式可規避此問題
find | xargs COMMAND(生產常用的操作方式)
原創文章,作者:張 潔,如若轉載,請注明出處:http://www.www58058.com/73030
詳細的總結介紹了find命令的用法,內容很好,建議將命令或代碼塊入到”插入程序代碼”中,文字上注意下縮進