find命令詳解

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後交互式操作


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章