liunx之find

linux的find命令詳解
find命令是用來在給定的目錄下查找符合給定條件的文件
  find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]

  一、OPTIONS參數
    -P、-L、-H:控制軟連接的對待方式,用的不多。不介紹了

  二、查找路徑
    就是個目錄路徑,相對和絕對都可以。

  三、查找條件
    (一)、根據名稱查找
      -name "PATERN"
      -iname "PATERN" :不區分名稱字母大小寫
      

      -regex PATTERN:基於正則表達式的模式查找,匹配的是整個路徑,而非單個文件名。
      

    (二)、根據文件從屬關係查找:
        -user USERNAME:查找屬主指定用戶的所有文件;
        -group GRPNAME:查找屬組指定組的所有文件;

        -uid UID:查找屬主指定的UID的所有文件;
        -gid GID:查找屬組指定的GID的所有文件;

        

        -nouser:查找沒有屬主的文件;
        -nogroup:查找沒有屬組的文件;
        
    (三)、根據文件的類型查找:
      -type:根據不同的文件類型篩選
f 普通文件
d 目錄文件
l 符號鏈接文件
b 塊設備 文件
c 字符設備文件
p 管道文件
s 套接字文件

            

    (四)、根據文件的大小查找:
        -size [+|-]#UNIT
          常用單位:k, M, G
            #UNIT:(#-1, #]
            -#UNIT:[0,#-1]
            +#UNIT:(#, oo)
            
            1、1k時:a3只有15個字節,也被算做1k也查詢,即條件符合大於0k ( #-1 ),小於等於1k (#)
            2、+1k時:a和a1滿足大於1k(#)的條件
            3、-62k時:只有a3滿足大於等於0,小於等於 61k(#-1)的要求。

    (五)、 根據時間戳查找:
        按照atime(文件的最後訪問時間)、mtime(文件的最後修改時間)、ctime(文件最後改變時間)三個變量來查詢:
          以天爲單位,
          -atime [+|-]#
              #:[#, #-1) :最後訪問時間在#天前(大於等於#天前,小於#-1天前)
                    等價於最後訪問時間與當前的時間差 大於 (#-1)24小時,小於等於 #24小時
              -#:(#, 0] :最後訪問時間在#天以內,不包括24小時前的那一刻。
                    等價於最後訪問時間與當前的時間差小於 #24小時
              +#:(oo, #-1] :最後訪問時間在#-1天以前的。包括#-1天前
                    等價於最後訪問時間與當前的時間差大於等於 #
24小時
                  -mtime
                  -ctime

      

    以“分鐘”爲單位:
        -amin
        -mmin
        -cmin

    -daystart:時間條件的開始先決條件。如果沒有的時候,比較的開始時間爲當前時間。如果有此參數,則比較的開始時間爲當天的23:59:59。
    

    查詢出來的各個文件名稱對應時間如下:
    

文件名 修改時間
服務器當前時間 09/08 17:34
a 09/08 17:20
b 09/07 12:20
c 09/08 13:20
d 09/07 22:20

    

    

    (六)、根據權限查找
        -perm
        -perm [/|-]mode
          mode:精確權限匹配;
          /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關係;
          -mode:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足。9位權限之間存在“與”關係;
          看案例:
          
            
          (1):精確查找。就是匹配權限值完全相等的;
          

          (2):/mode。 只要有一組用戶匹配到一個權限即可。
          通俗說:就是屬主擁有給定屬主權限的某一個,或者數組擁有給定權限的某一個,或者其他用戶擁有給定權限的某一個即可。
          
          表示屬主擁有執行權限
          或者數組擁有寫權限,
          或者其他用戶擁有寫權限

          (3):-mode。並且的關係。
          通俗說:就是給定的屬主權限必須擁有。並且給定的數組權限必須擁有。並且給定的其他用戶權限必須擁有。

          
          表示屬主擁有執行權限
          並且數組擁有寫權限,
          並且其他用戶擁有寫權限

        處理動作:
          -print:輸出至標準輸出;默認的動作;
          -ls:類似於對查找到的文件執行“ls -l”命令,輸出文件的詳細信息;
          -delete:刪除查找到的文件;
          -fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;
          -ok COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;
          -exec COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;

          注意:find傳遞查找到的文件路徑至後面的命令時,是先查找出所有符合條件的文件路徑,並一次性傳遞給後面的命令;

            但是有些命令不能接受過長的參數,此時命令執行會失敗;另一種方式可規避此問題:
             find | xargs COMMAND
鏈接學習出自: https://www.cnblogs.com/scrit/p/5854197.html

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