1、locate #非精確查找,非時時查找,但是由於可以生成數據庫,updatedb,所以查找速度塊。
用法:locate command
2、find #查找利器,精確查找,實時查找
用法:find path 查找條件 執行的動作
1)查找條件:
-name "filename" #"filename" 可以匹配通配符
舉例:find /etc/ http*
-iname "filename" #忽略filename的大小寫
-user "用戶名"
舉例:[root@www ~]# find /home/ -user redhat
/home/redhat
-group "組名" #用法同 -user
-uid "用戶的id" #根據用戶的id來進行查找
-gid "組id"
-nouser #查找沒有屬主的文件,注:當我們刪除用戶的時候,家目錄的文件還在,這時候會成爲沒有屬主的文件
-nogroup #查找沒有屬組的文件
-type
f #普通文件
d #目錄文件
l #連接文件
b #塊設備文件
c #字符文件
s #socket文件
p #管道文件
-size +n|-n|n (K,M,G)
+n #表示大於多少字節的文件。想到這裏我突然想問自己一下,平時我們說的帶寬爲100M,實際上我們是100Mbps(bits per second),是bit計算的。但是我們下載的速度是按照Byte計算的,所以100M/8 纔是真實的速度。額,困擾了我好久,今天終於瞭解了。當然前面的只是理論值。
-nM #小於nM的文件。
nM #等於nM的文件,當然查找的時候可能會有出入,這是因爲1-2M,系統看成是2M的,四捨五入嗎。還需要待查看
-atime
-mtime
-ctime
上面的幾個時間戳都可以接+n,-n,n。可以想想爲一條線。n表示當前點,+n,表示n之前的時間,-n表示,n到今天的時間算起。
-perm
mode #這個應該很簡單,精確匹配
-mode #這個是對於出現的屬性精確匹配,沒出現過的屬性模糊匹配。
舉例:-111,表示在屬主,屬組和others上必須有x權限,其他的模糊匹配,當然如果是0的話,就模糊匹配。比如110,在others上可以爲任意屬性,但是屬主和屬組上必須同時具備x權限爲。
+mode #這個和上面的類似,但是有個不同點是前面的必須同時具備,這個只需要具備一條屬性就匹配。
執行的動作 -exec 或者 | xargs,後者更爲通用。記得好像-exec不同後接長命令選項。
舉例: find /tmp/test.tar.gz -type f | xargs rm -rf {} \; #有點類似於正則的後置引用