find命令詳解

find命令是用來在給定的目錄下查找符合給定條件的文件

  find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]

  一、OPTIONS參數

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

  二、查找路徑

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

  三、查找條件

   ?。ㄒ唬?、根據名稱查找

      -name "PATERN"

      -iname "PATERN" :不區分名稱字母大小寫

      find命令詳解

 

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

      find命令詳解

 

   ?。ǘ?、根據文件從屬關系查找:

        -user USERNAME:查找屬主指定用戶的所有文件;

        -group GRPNAME:查找屬組指定組的所有文件;

 

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

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

 

        find命令詳解

 

        -nouser:查找沒有屬主的文件;

        -nogroup:查找沒有屬組的文件;

        find命令詳解

    (三)、根據文件的類型查找:

      -type:根據不同的文件類型篩選

      

f 普通文件
d 目錄文件
l 符號鏈接文件
b 塊設備 文件
c 字符設備文件
p 管道文件
s 套接字文件

 

            find命令詳解

 

   ?。ㄋ模?、根據文件的大小查找:

        -size [+|-]#UNIT

          常用單位:k, M, G

            #UNIT:(#-1, #]

            -#UNIT:[0,#-1]

            +#UNIT:(#, oo)

            find命令詳解

            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

 

      find命令詳解

 

    以“分鐘”為單位:

        -amin

        -mmin

        -cmin

 

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

    find命令詳解

 

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

    find命令詳解

 

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

 

    find命令詳解

 

    find命令詳解

 

 

   ?。?、根據權限查找

        -perm

        -perm [/|-]mode

          mode:精確權限匹配;

          /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關系;

          -mode:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足。9位權限之間存在“與”關系;

          看案例:

          find命令詳解

            

         ?。?):精確查找。就是匹配權限值完全相等的;

          find命令詳解

 

         ?。?):/mode。 只要有一組用戶匹配到一個權限即可。

          通俗說:就是屬主擁有給定屬主權限的某一個,或者數組擁有給定權限的某一個,或者其他用戶擁有給定權限的某一個即可。

          find命令詳解

          表示屬主擁有執行權限

          或者數組擁有寫權限,

          或者其他用戶擁有寫權限

 

         ?。?):-mode。并且的關系。

          通俗說:就是給定的屬主權限必須擁有。并且給定的數組權限必須擁有。并且給定的其他用戶權限必須擁有。

 

          find命令詳解

          表示屬主擁有執行權限

          并且數組擁有寫權限,

          并且其他用戶擁有寫權限

 

        處理動作:

          -print:輸出至標準輸出;默認的動作;

          -ls:類似于對查找到的文件執行“ls -l”命令,輸出文件的詳細信息;

          -delete:刪除查找到的文件;

          -fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;

          -ok COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;

          -exec COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;

 

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

 

            但是有些命令不能接受過長的參數,此時命令執行會失??;另一種方式可規避此問題:

             find | xargs COMMAND

原創文章,作者:小江,如若轉載,請注明出處:http://www.www58058.com/44815

(0)
小江小江
上一篇 2016-09-19 13:49
下一篇 2016-09-19 13:49

相關推薦

  • 【聽說要寫一篇文章,我覺得標題比較長的人一定特別帥。】

    我叫小問。 計劃是學好馬哥所教授的知識。 目標是找到一份好工作!

    Linux干貨 2016-10-23
  • 磁盤管理之文件系統及管理工具

    磁盤管理之文件系統及管理工具    我們在之前的文章中講到了硬盤的MBR與GPT分區,我們這篇文章來講一下怎么使用工具對硬盤進行分區,硬盤的分區有什么區別,以及分區的管理。 管理分區   首先我們來看一下分區。那么什么是分區呢?簡單的比喻一下,硬盤就像一個大房子,那么在向房間里放東西(比如家具)之前,它需要有一定的結構…

    Linux干貨 2016-08-30
  • 淺談TCP三次握手和四次分手

          TCP(Transmission Control Protocol傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議提供可靠的連接服務,采用三次握手確認建立一個連接,比如我們去訪問一個網站,從輸入網址到頁面顯示我們所想要瀏覽的內容,這個過程其中就包含了小編要說的三次握手和四次揮手。 一、首先我們來了解…

    2017-09-02
  • linux 學習筆記

    第二周

    Linux干貨 2018-03-16
  • 第六周總結

    請詳細總結vim編輯器的使用并完成以下練習題 vim: 模塊化的編輯器   基本模式: 編輯模式,命令模式 輸入模式 末行模式: 打開文件: # vim [options] [file..] +#:打開文件后,直接讓光標處于第#行的行首; +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首; 模式轉換: 編輯模式:…

    Linux干貨 2017-08-07
  • 馬哥教育網絡班22期第三周課程練習1

    1、who | awk {'print $1'} | sort | uniq  2、last | head -n1 3、awk -F":" {'print $7'} /etc/passwd |  awk '{for(i=1;i<=NF;i++)a[$i]++}EN…

    Linux干貨 2016-08-29
欧美性久久久久