linux下find(文件查找)命令的用法總結


find在不指定查找目錄的情況下是對整個系統進行遍歷查找

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

  [指定查找目錄]例如:

[root@room9pc01 images]# find /etc/ /tmp/ /root -name passwd

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

  [查找規則

        1)根據文件名查找 

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

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

這里另外介紹下文件名通配的知識 

*表示  通配任意的字符          

[root@room9pc01 ~]# find / -name "*.img"

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

[root@room9pc01 ~]# find /etc/ -name "passw?

[ ] 表示 通配括號里面的任意一個字符

 [root@node4 ~]# find / -name "[ab].sh"

 

     (2)根據文件所屬用戶和組來查找文件

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

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

     3)根據uid  gid來查找用戶

           #find  /tmp  -uid  500  //查找uid500 的文件

           #find  /tmp  -gid  1000 // 查找gid1000的文件

 

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

          我們可以使用stat命令來查看一個文件的時間信息 如下:

           #-atime

           #-mtime

           #-ctime

           #-amin

           #-mmin

           #-cmin

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

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

          #find  /tmp  -atime  -5            //表示查找在五天內訪問過的文件

          

     (5)根據文件類型來查找文件

                -type

                      f     // 普通文件

                      d     //目錄文件

                      l     //鏈接文件

                      b     //塊設備文件

                      c     //字符設備文件

                      p     //管道文件

                      s     //socket文件

 

        (6)根據大小來查找文件

               -size

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

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

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

           (7)根據文件權限查找文件

              -perm

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

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

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

           (8)-nouser  and  -nogroup

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

  [查找完執行的action]

         # -print                                 //默認情況下的動作

         # -ls                                     //查找到后用ls 顯示出來

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

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

這里要注意{}的使用:替代查找到的文件

  

     #find  /tmp  -atime  +30  –exec rm –rf  {}  \ #刪除查找到的超過30天沒有訪問過文件

 


例:找出所有用戶 student 擁有的文件,並且把它們拷貝到/root/findfiles 目錄中

[root@serverX ~]# mkdir /root/findfiles
[root@serverX ~]# find / -user student -type f -exec cp -p {} /root/findfiles/ \;
或者
[root@serverX ~]# cp -p
$(find / -user student -type f) /root/findfiles/

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM