1. 程式人生 > >Linux下的查詢( grep & find )

Linux下的查詢( grep & find )

grep用法:

  • grep 遞迴搜尋檔案

語法:grep -r -n “XXXX” ./
說明:-r 表示遞迴,-n 表示標出要搜尋的內容所在的行數,“XXXX” 表示當前要搜尋的內容,./ 表示在當前檔案下

  • grep排除搜尋目錄

使用 grep時,經常會遇到這樣一個問題,要查詢的內容(變數命名等)在一個或者多個檔案(目錄)中有,但是,我們又不想搜尋它們,因此就可以使用 –exclude-dir 選項。

用法

  • 1、 單個目錄示例:

grep -r -n “XXXX” ./ –exclude-dir=framework
不搜尋framework目錄下的檔案

  • 2、多個目錄示例:

grep -r -n “XXXX” ./ –exclude-dir={framework,device,kernel-3.10}
不搜尋framework,device,kernel-3.10 三個目錄下的檔案

  • 3、多個檔案示例:

grep -r -n “XXXX” ./framework –exclude=*.{hello,raindi}
在framework目錄下排除搜尋副檔名為hello和raindi的檔案

find用法:

  • 1、按照檔名查詢

(1)find / -name httpd.conf  
在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢
    
(2)find /etc -name httpd.conf  
在/etc目錄下檔案httpd.conf
    
(3)find /etc -name ‘srm

’  
使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘srm’的檔案
    
(4)find . -name ‘srm*’   
表示當前目錄下查詢檔名開頭是字串‘srm’的檔案

  • 2、按照檔案特徵查詢     

(1)find / -amin -10   # 查詢在系統中最後10分鐘訪問的檔案(access time)

(2)find / -atime -2   # 查詢在系統中最後48小時訪問的檔案

(3)find / -empty   # 查詢在系統中為空的檔案或者資料夾

(4)find / -group cat   # 查詢在系統中屬於 group為cat的檔案

(5)find / -mmin -5   # 查詢在系統中最後5分鐘裡修改過的檔案(modify time)

(6)find / -mtime -1   #查詢在系統中最後24小時裡修改過的檔案

(7)find / -user fred   #查詢在系統中屬於fred這個使用者的檔案

(8)find / -size +10000c  #查找出大於10000000位元組的檔案(c:位元組,w:雙字,k:KB,M:MB,G:GB)

(9)find / -size -1000k   #查找出小於1000KB的檔案

  • 3、使用混合查詢方式查詢檔案

引數有: !,-and(-a),-or(-o)。

(1)find /tmp -size +10000c -and -mtime +2   #在/tmp目錄下查詢大於10000位元組並在最後2分鐘內修改的檔案

(2)find / -user fred -or -user george   #在/目錄下查詢使用者是fred或者george的檔案檔案

(3)find /tmp ! -user panda  #在/tmp目錄中查詢所有不屬於panda使用者的檔案