文件查找:
在文件系統上查找符合條件的文件個過程:
文件查找工具:
locate:非實時查找(依賴於事先構建的索引查找,索引是在系統較爲空閒的時候自動更新的(週期性任務);用戶能夠手動更新此索引(updatedb))
優勢:查找速度快消耗資源少;模糊查找:只要包含條件也可尋得
缺點:最新的文件沒法查找,實時性不高
find:實時查找(經過遍歷指定路徑)
優勢:精確查找文件名一一比對
缺點:查找速度慢
find命令
find 【option】。。。【查找路徑】 【查找條件】【處理動做】
查找路徑:默認爲當前路徑
查找條件:指定的查找標準,能夠根據文件名、大小、屬性等進行;默認找出指定路徑下的全部文件
處理動做:對符合條件的文件作的操做;默認爲輸出至屏幕;
查找條件:
根據文件名進行查找:
-name 「文件名稱」 支持使用glob(* , ? , [])
-iname "文件名稱" 不區分大小寫,支持使用glob;
-regex 「pattern」 以正則表達式匹配整個文件路徑字符串,而不只是文件名稱;
根據屬主進行查找
-user USERNAME :查找用戶名爲指定用戶的文件
-group GROUPNAME:
-uid USERID:查找文件的屬主指定uid的文件
-nouser:查找沒有屬主的文件
-nogroup
根據文件類型查找:
-type TYPE
f:普通文件(在ls中-表示)
d:目錄
l:符號連接
b:塊設備
c:字符設備
p:命名管道
s:套接字
組合查找條件:
與條件:-a
或條件:-o
非條件:-not,!
find /tmp \(-nouser -o -nogroup\) -ls
-ls處理針對的是()內的條件 ()須要\轉譯號 若是不加 只針對-nogroup條件
根據大小來查找:
-size 【+|-】 #UNIT
#UNIT:表示大於#-1且小於等於#
-#UNIT:表示小於等於#-1
+#UNIT:表示大於#
根據 時間戳查找:
以」天「爲單位
-atime 【+|—】#
#:【#,#+1)
+:【#+1,∞】
-:(0,#)
-mtime
-ctime
以「分鐘」爲單位
-amin
-mmin
-cmin
根據權限:
-perm 【/|-】MODE
MODE:精確匹配
/MODE:任何一類用戶的任何一位權限符合條件便可
好比/666:屬主有讀權限或寫權限或者屬組有讀權限或寫權限或者其餘用戶有讀權限或寫權限
-MODE:爲每一類用戶指定的權限都符合條件
好比-420:屬主必須有讀權限且屬組有寫權限其餘用戶不作要求
0表示對該類用戶不做權限要求
處理動做:
-print:默認處理動做
-ls:相似與對找到文件作「ls -l」操做
-delete::刪除查找到的文件:
-fls /path/to/somefile:查找到的文件詳細路徑信息保存到指定文件中正則表達式
-exec COMMAND {} \; #不會提示肯定,直接操做ide
-ok COMMAND {} \; #會提示肯定,直接操做工具
注意:find命令會一次性找到全部符合條件的文件,並一同傳遞給後面的命令,但有些命令不能接受過長的參數,解決辦法:find |xargs COMMANDui