linux的find命令詳解

find命令是用來在給定的目錄下查找符合給定條件的文件
  find [OPTIONS] [查找起始路徑] [查找條件] [處理動做]
 
  1、OPTIONS參數
    -P、 -L、-H:控制軟鏈接的對待方式,用的很少。不介紹了
 
  2、查找路徑
    就是個目錄路徑,相對和絕對均可以。
 
  3、查找條件
    (一)、根據名稱查找
      -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)
            
            一、1k時:a3只有15個字節,也被算作1k也查詢,即條件符合大於0k ( #-1 ),小於等於1k (#)
            二、+1k時:a和a1知足大於1k(#)的條件
            三、-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
相關文章
相關標籤/搜索