find命令學習

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 {} \; #有點類似於正則的後置引用



       

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