Linux---find文件查找命令

Linux下文件查找命令有兩個---locatefind

一、locate 命令

       只對其生成的數據庫經行遍歷(生成數據庫的命令updatedb),速度快但是locate只能對

       文件進行模糊匹配,精度不高,非實時的

       -i //查找文件的時候不區分大小寫實例:locate -Ipasswd

   -n://只顯示查找結果的前n行   實例:locate -n 5 passwd

   查詢之前需要執行   updatedb命令

二、find命令

         實時、精確、支持衆多查找標準、遍歷指定目錄中的所有文件完成查找,速度慢

        1、使用格式:find [指定查找目錄][查找規則][查找完後執行的action]

      查找路徑:默認當前路徑   查找標準:默認指定路徑下的所有文件   處理動作:默認爲顯示

       例如:find /etc/tmp/root -name passwd

       根據文件名查找

               # -name //根據文件名查找(精確查找

               #-iname //根據文件名查找,但是不區分大小寫

               #-regex PATTERN 基於正則表達式進行文件名匹配

       2、文件名通配

              *表示  通配的任何意義的字符

                     find /etc -name "*passwd*"

              ?表示通配任意的單個字符

                     find/etc -name "passwd?"

              []通配中刮號裏面的任意一個字符      

         find /etc/ -name "[ab].sh"

      3、使用文件所屬用戶和組查找文件(uid gid

             # -user //根據屬主來查找文件

                 find /tmp -uid 0

      # -group //根據屬組查找文件

                 find /tmp  -gid o

        4-a and -o and-not的使用

              -a :連接兩個不同條件(兩個條件必須同時滿足)

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

              -not :對條件取反

               find /etc/ -name "-*.sh"-a-user root   

       find /etc/-not -user root

       find ./-not -user user1-o -not -type d

       find ./ -not \( -useruser1 -a -type d \)\

   5、根據時間戳的相關屬性來查找文件

            stat命令查看一個文件的時間信息

             stat /etc/ passwd

      atime :最近一次訪問時間

      mtime :最近一次內容修改時間

      ctime :最近一次屬性修改時間

            實例:

            find /tmp -atime +5  //表示查找在5天內沒有訪問過的文件

            find /tmp -atime -5 //訪問在5天內訪問過的文件

            其他同理

     

   6、根據文件類型來查找文件

           -tpye

      f:    //普通文件

              d   //目錄文件

              l  //鏈接文件

              b  //塊設備文件

              c  //字符設備文件

              p  //管道文件

              s   //socket文件

       find /tmp-type s

    7、根據大小來查找文件

              -size  [+|-]

      find /tmp -size 2M  //查找在/tmp目錄下等於2M的文件

      find /tmp -size +2M  //查找在/tmp目錄下大於2M的文件

      find /tmp -size -2M  //查找在/tmp目錄下小於2M的文件

 

    8、根據文件權限查找(-perm)

            -perm MODE 精確查找

                       /MODE :任意一位匹配即滿足條件

                        -MODE:文件權限能完全包含此MODE時才符合條件

                        -644

             find ./ -per1 -001

      find /tmp -perm  755    //查找在/tmp目錄下權限是755的文件

      find /tmp -perm +222    //表示只要有一類用戶(屬主/屬組/其他)的匹配寫權限就行

      find /tmp -perm -222    //表示必須所有類別用戶都滿足有寫權限

 

    9、-nouser and -nogroup

      find / -nogrop -a -nouser //在整個系統中查找即沒有屬主又沒有屬組的文件(這樣的文件

                                                                         通常很危險,應該及時清除,否則後患無窮)

    10、[查找執行的action]
       -print            //默認情況下的動作

       -ls                //查找後用ls 顯示出來

       -ok  [commend]    //查找後執行命令的時候詢問用戶是否要執行

       -exec [commend]     //查找後執行命令的時候不詢問用戶,直接執行

                 find /tmp -name "*.sh" -exec chmod u+x {}\;     {} 替代查找到的文件

                 find /tmp -atime +30 -exec rm -rf{} \;

   

 

 

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