Linux文件查找

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

locate:數據庫

find :socket

 

 

 

locate這個命令對其生成的數據庫進行遍歷(生成數據庫的命令:updatedb),這一特性決定了查
找文件速度很快,可是locate只能進行模糊匹配,在精度上來講查了點,簡單介紹它的兩項功能:
#locate
-i   //查找文件的時候不區分大小寫   locate  -i  passwd
-n  //顯示查找文件的前N行    locate  -n  5 passwd
find在不指定查找目錄的狀況下是對整個系統進行遍歷查找:
使用格式: find  [指定目錄]  [查找規則]  [查找完後執行的action] 

 

  [ 指定查找目錄 ] 例如 :

 

 這裏要注意的是若是想要從多個路徑下一同查找,目錄之間要用空格分開ui

 

 

 

 

[查找規則]例如:spa

1)根據文件名查找3d

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

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

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

*表示   通配任意的字符
it

 

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

 

 

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

 

 

 

 

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

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

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

 

 

 

 

3)根據uid  gid來查找用戶

 

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

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

 

 

 

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

                 #  -a 鏈接兩個不一樣的條件(兩個條件必須同時知足)

               # -o 鏈接兩個不一樣的條件(兩個條件知足其一便可)

      # -not 對條件取反的

 

 

 

 

 

 

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

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

 

 

 #-atime

 

#-mtime

#-ctime

#-amin

#-mmin

#-cmin

 

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

 

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

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

 

 

 

 

 

 

 

 

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

    -type

     f     // 普通文件

     d     //目錄文件

     l     //連接文件

     b     //塊設備文件

     c     //字符設備文件

     p     //管道文件

     s     //socket文件

 

 

 

 

7)根據大小來查找文件

               -size

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

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

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

 

 

 

8)根據文件權限查找文件

              -perm

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

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

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

 

 

 

 

9-nouser  and  -nogroup

//在整個系統中查找既沒有屬主又沒有屬組的文件(這樣的文件一般是很危險的,做爲系統工程師的咱們應該及時清除掉)

#find  /  -nogroup –a –nouser     

 

 

 

 

 

[查找完執行的action]

 

         # -print                                 //默認狀況下的動做

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

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

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

 

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

 

 -exec    -ls 用法

 

 -ok用法

 

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

 

 

 

  咱們也可使用xargs來對查找到的文件進一步操做
 

 這樣權限也能夠改變。或者其餘操做。

相關文章
相關標籤/搜索