首頁  >  文章  >  php教程  >  linux下find(檔案查找)指令的用法總結

linux下find(檔案查找)指令的用法總結

高洛峰
高洛峰原創
2016-12-14 16:42:241624瀏覽

前言:我們為什麼要學會使用find指令?

 

每一種作業系統都有成千上萬的文件組成,對於linux這樣「一切皆文件」的作業系統來說更不例外,大家應該都能很輕鬆使用windows下的文件查找功能,但對linux這項功能可能不是很熟悉,其實想玩linux的你更要牢牢掌握這個命令,因為linux不像windows那樣有固定的文件名後綴,並且因為linux陣營下百家爭鳴的特性,一個相同的文件在不同的發行版,可能會有不同,所以如果你能牢牢掌握find指令的使用,你在摸索linux的道路上將會順利很多,同時你會發現linux下文件查找功能其實很簡單,而且要比windows下查找功能強大很多很多!好,下面進入正題

 

Linux下查找文件的命令有兩個;locate 和 find

 

首先說下locate,locate這個命令是對其生成的資料庫進行遍歷(個生成的命令:updatedb) ,這一特性決定了用locate查找文件速度很快,但是locate命令只能對文件進行模糊匹配,在精確度上來說差了點,簡單介紹下它的兩個選項:

  #locate 

       - i        //查找文件的時候不區分大小寫 例如:locate  –i   passwd

       -n    passwd

 

下面重點說下find,find在不指定查找目錄的情況下是整個系統遍歷查找

 

  使用格式 :   find  [指定查找目錄]  [查找規則]  [

這裡要注意的是目錄之間要用空格分開

  [查找規則] 

               //依檔案名稱尋找(精確尋找)

           #  - iname       //依檔案名稱尋找,但不區分大小寫 

 

這裡另外介紹下檔案名稱通配的知識

 

*表示任意的字元?表示  通配任意的單字

[ ] 表示 通的任意一個字元

linux下find(檔案查找)指令的用法總結

    user         //根據屬主來找文件

           #  -group        //以屬組中尋找文件🠎  和 gid來找出使用者

linux下find(檔案查找)指令的用法總結           #find  /tmp  -uid  500  //「找出uid文件

           #find  /tmp  -gid  10000 // 尋找gid是1000的檔案🠎  and  -o  and  –not的使用

           # -a 連結兩個不同的條件(兩個條件必須同時滿足)linux下find(檔案查找)指令的用法總結

     # -o 連接兩個不同的條件(兩個條件滿足其一即可)

       

    (5),根據文件時間戳記的相關屬性來查找文件

          我們可以使用stat指令來檢視一個文件的時間資訊         #-mtime

           #-ctimelinux下find(檔案查找)指令的用法總結

           #-amin

           #-mmin

  atime,mtime,ctime就是分別對應的“最近一次訪問時間”“最近一次內容修改時間”“最近一次屬性修改時間”,這裡的atime的單位指的是「天」,amin的單位是分鐘  

 

          #find  

          #find  /tmp  -atime  - 5            //表示在五天內尋找的文件

          

             -type

                          d     //目錄檔案

              文件

                      b     ///塊裝置檔案     //字元裝置文件

                      p         s     //socket檔案

7),以一般方式尋找文件

 🎠     

 

          #find  /tmp  -size   2M          #find  /tmp  -size  +2M           //以/tmp 目錄下的2M tmp  -size  -2M           //以在2M中尋找的檔案

 

  

              -perm

 

         / /尋找在/tmp目錄下權限是755的檔案

          #find  /tmp  -perm        

          #find  /tmp  -perm  -222           (9),-nouser  and  -nogroup

 

          #find  /  -nogroup –a –nouser   #find  /  -nogroup –a –nouser   #find  /  -nogroup  在整個系統中尋找既沒有屬主又沒有屬組的文件(這樣的文件通常是很危險的,作為系統工程師的我們應該及時清除掉)

 

  [查找完執行的action]

  -print                                                              //尋找後執行指令的時候詢問使用者是否要執行

        # -exec [ commend]               –exec rm –rf  {}  ; #刪除查找到的超過30天沒有訪問過文件

 

     我們也可以使用xargs來進一步對查找到的文件

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn