linux系統文件查找分爲實時查找和非實時查找
實時查找:遍歷所有文件進行條件匹配
非實時查找:根據索引查找
locate:非實時查找,依賴於索引,而索引構建相當佔用資源;索引的創建是在系統空閒時由系統自動進行,可通過updatedb命令手動構建索引;查找速度快,非精確查找,模糊查找
find:實時、精確查找,速度慢
命令格式:
find [option]... [查找路徑] [查找條件] [處理動作]
查找路徑:默認爲當前目錄
查找條件:默認爲指定路徑下的所有文件
處理動作:默認爲顯示至屏幕
查找條件
-name:"文件名稱",支持使用globbing字符 *:任意長度的任意字符 ?:任意單字符 []:範圍取值 [^]:條件取反 -iname:"文件名稱",查找時忽略字符大小寫 -user USERNAME:根據文件的屬主查找 -group GROUPNAME:根據文件的屬組查找 -uid UID -gid GID -nouser:查找沒有屬主的文件 -nogroup:查找沒有屬組的文件 -type TYPE:根據文件類型查找 f:普通文件 d:目錄文件 l:符號鏈接 b:塊設備 c:字符設備 s:套接字文件 p:命名管道 -size [+|-]#UNIT:根據文件大寫查找 常用單位:k,M,G #UNIT:#-1 < x <= # -#UNIT:x <= #-1 +#UNIT:x > # #組合條件查找 -a:多條件同時滿足 -o:多條件滿足其一即可 -not,!:條件取反 -not \( A -o B \):多條件分組 #根據時間戳查找 -atime:文件訪問時間 +#:x >= #+1 -#:x < # #: # <= x < #+1 -mtime:文件數據內容改變時間 -ctime:文件元數據改變時間 -amin: -mmin: -cmin: -perm [+|-]MODE:根據文件權限查找 MODE:與MODE精確匹配 find . -perm 644 #即查找當前目錄下文件權限爲644的文件 +MODE:任何一類用戶的權限只要能包含對其指定的任何一位權限即可 find . -perm +222 #即查找當前目錄下任何一位權限包含寫的文件 -MODE:每類用戶指定的檢查權限都要包含匹配, find . -perm -222 #即查找當前目錄下三類用戶權限都包含寫的文件
處理動作
-print:默認處理動作,顯示查找結果 -ls:類似與ls -l,長格式顯示查找結果 -exec COMMAND {} \; :將查找結果作爲COMMAND的輸入 -ok COMMAND {} \; :同上,不同的是執行COMMAND後交互式操作