linux中的find命令

find命令簡介:

       find命令:在目錄成次結構中實時、精確查找文件,查找時對文件系統進行遍歷,能夠進行遞歸查找,查找速度比較慢。find用於

文件查找時根據指定的條件進行精確找找,會將查找結果中符合指定條件的文件全部列出來。它的使用權限是所有用戶。

       grep與find不同,grep用文本搜索,其對象是文本流


find命令使用格式:

       find [options] [path...] [conditions] [actions]


       path:默認爲當前目錄

       conditions:默認爲查找指定路徑下的所有文件

       actions:默認爲顯示

find命令的用法:


   options:選項


           -xdev:不在其它文件系統的目錄中搜索。

wKioL1MNay3gs8bOAABA7rnD8eQ066.jpg

wKioL1MNabbRQc0xAACUMtD1KX4556.jpg

wKiom1MNa3jAVGXQAAAq3mUtMNQ839.jpg


wKiom1MNa5KwVfbmAACc4KoEQsY664.jpg


 -mindepth <n>:搜索文件時至少要深入到指定目錄的第 n 層子目錄。

wKiom1MNbGeQu0kHAAC0wTHIZ9I180.jpg

-follow:如果符號鏈接到目錄,則跟隨符號鏈接進入。默認情況下,find不跟隨鏈接。

wKiom1MNbgWwkSBAAAInmUyYLM8724.jpg

-daystart:當使用與事件相關的測試時,將當天的開始時間作爲時間戳,而不是默認值(從當前時間倒退24個小時)僅作用於命令行出現的測試。


conditions:查找條件


-name "filename":按文件名稱查找,支持文件名通配符。            

例:在當前目錄下查找文件名以L或l開頭的文件

wKiom1MNcqWSmnAQAACG8V6zbbo965.jpg


-iname "filename":按文件名查找,忽略大小寫字母,支持文件名通配符。

例:在當前目錄下查找文件名以L或l開頭的文件

wKioL1MNcxuxq4AhAABsQ0KUxBk223.jpg


-user UserName:按文件所屬的屬主查找

-user GroupName:按文件所屬的屬組查找

例:查找當前目錄下文件所屬的屬主爲hadoop的所有文件

wKioL1MNdH7gRMF5AAFlStUVJIo091.jpg

-uid UID:根據文件所屬的UID查找文件

    n: 查找文件所屬的UID爲n的所有文件

    +n:查找文件所屬的UID大於n的所有文件

    +n:查找文件所屬的UID小於大於n的所有文件

-gid GID:根據用的GID查找文件    

     n: 查找文件所屬的GUID爲n的所有文件

     +n:查找文件所屬的GUID大於n的所有文件

     +n:查找文件所屬的GID小於大於n的所有文件

例:查找當前目錄下文文件所屬組的gid爲123的所有文件

wKiom1MNzmnTdbHhAAG4gra7xK4192.jpg

例:+n:查找文件所屬的UID大於1000的所有文件

wKiom1MN7BHArWm6AAAahg3P-Po425.jpg

wKioL1MN6wSQl-imAAGU2K58-aE604.jpg

例:查找文件所屬的UID小於1000的所有文件

wKioL1MN6ljQV0rFAAC-4MkCCOk683.jpg

-empty:查找所有爲空的文件

例:查找所有的空文件

wKioL1MN09CifznpAAGu0hReApM311.jpg


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

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

例:當前目錄下查找所有沒有屬主的文件

wKiom1MN16ySv1oUAABUBNro0ZY765.jpg


-type:根據文件類型進行查找

   常見的文件類型有:

      f:普通文件

      d:目錄文件

      c:字符設備文件

      l:符號鏈接文件

      b:塊設備文件

      p:管道文件

      s:套接字文件

例: 查找/var/spool/postfix/public/目錄下的所有套接字文件

wKioL1MN27WhFsIeAAEpELp40AY555.jpg

-size:根據用戶指定文件的大小進行查找(常用單位K|M|G)

n:查找指定條件下大小爲n的文件

例:在當前目錄下查找大小爲1M的文件

wKiom1MN3vzQk6QIAAD1VJcmV-w293.jpg


+n:查找指定條件下文件大於n的文件

例:在當前目錄下查找大於10k的文件

wKiom1MN372TwhwxAACNetXcX34102.jpg


-n:查找指定條件下文件小於n的文件

例:在當前目錄下查找小於4k的文件

wKiom1MN5D7jPTdjAAJJ328knNQ263.jpg


根據時間戳查找文件:


           -atime:單位爲天

                 +n:在指定條件下查找n+1天前被訪問過的文件

                 -n:在指定條件下查找n天之內被訪問過的文件

                  n:查找從當前時間算起前n天以內被訪問過的文件

           -ctime:單位爲天

                 +n:在指定條件下查找n+1天前被改變的文件

                 -n:在指定條件下查找n天之內被改變的文件

                  n:查找從當前時間算起前n天以內被改變的文件


           -mtime:單位爲天

                 +n:在指定條件下查找n+1天前修改過的文件

                 -n:在指定條件下查找n天之內被修改過的文件

                  n:查找從當前時間算起前n天以內修改過的文件


           -amin:單位爲分鐘

                 +n:在指定條件下查找n+1分鐘前被訪問過的文件

                 -n:在指定條件下查找n分鐘內被訪問過的文件

                  n:查找從當前時間算起前n分鐘被訪問過的文件

           -cmin:單位爲分鐘

                 +n:在指定條件下查找n+1分鐘前被改變的文件

                 -n:在指定條件下查找n分鐘之內被改變的文件

                  n:查找從當前時間算起前n分鐘以內被改變的文件


           -mmine:單位爲分鐘

                 +n:在指定條件下查找n+1分鐘前修改過的文件

                 -n:在指定條件下查找n分鐘之內被修改過的文件

                  n:查找從當前時間算起前n分鐘以內修改過的文件

例:在/var目錄下查找9天之前被訪問過的文件

wKioL1MN8TKgkdv5AACznJWq1Qc140.jpg


例:在/var目錄下查找20分鐘以內被訪問過的文件和3分鐘以內被訪問過的文件

wKioL1MN8izgt-tTAAFuedfwp0Y923.jpg


例:在/var目錄下查找前3天被修改過的文件

wKiom1MN8vvDpcdLAABDzX3S7-s969.jpg


-perm:在指定條件下根據文件的權限進行查找

     MODE:查找時按精確的文件的權限進行匹配

例:在/tmp目錄下查找權限爲641的所有文件

wKiom1MN97egJtLMAAD2VUZkv_Q927.jpg

    -MODE:在指定條件下只要文件的屬主、屬主或其他用戶的任意權限與對應指定權限中的任意一位匹配就能夠被查

找到。通常用於查找文件的特定權限位是否存在。

例:在/tmp/mtest/目錄下其他用戶具有可執行權限的文件

wKioL1MOxWuisHdlAAD41wAmxVQ744.jpg

   +MODE:在指定條件下只要文件中的權限包含指定的權限就會被查找到。

例:在/tmp/mtest目錄下查找屬組具有讀和執行權限,其他用戶具有執行權限的所有文件。

wKiom1MOxamAow3rAACinHwfDIU175.jpg



actions:

    -print:在指定條件下以將匹配的文檔輸出到標準輸出(默認find執行該動作)

    -ls:在指定條件下以長格式輸出文件的信息

    -exec command { } \;:在指定條件下以對匹配的文檔執行所給的shell命令。形式爲:注意{ }和\;之間的空格
    -ok:和-exec作用相同。只但是以種更安全的模式執行該參數所給的shell命令。在執行每個命令之前,都會給出提示,

讓用戶確定是否執行


例:在/tmp/mtest目錄下查找屬組具有讀和執行權限,其他用戶具有執行權限的所有文件,並以長格式顯示。

wKioL1MOxa-SkG5LAAC4R7LOWFI089.jpg


  |xargs commond:  xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割爲一些足夠小

的塊,以方便過濾器和命令進行處理。xargs從管道從文件的輸出中讀取數據,它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令。


例:在/tmp/目錄下查找空文件並將其刪除.

wKiom1MPSZ2AjGfBAACYX0YzSh0725.jpg






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