文件查找之locate、whereis與find

locate

    非實時,模糊匹配,根據文件系統的數據庫進行查找;
    updatedb:生動生成文件數據庫,這個數據庫會在天天固定的時間自動生成,也能夠用此命令手動生成。
   
   
   
   
/var/lib/mlocate/mlocate.db
   
   
   
   
yum install -y mlocate

     locate命令實際上是find -name的另外一種寫法

whereis


whereis命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。

whereis [ -sbmu ] [ -SBM dir ... -f ] name...
-b:只查找二進制文件; 
-B<目錄>:只在設置的目錄下查找二進制文件; 
-f:不顯示文件名前的路徑名稱; 
-m:只查找說明文件; 
-M<目錄>:只在設置的目錄下查找說明文件; 
-s:只查找原始代碼文件; 
-S<目錄>只在設置的目錄下查找原始代碼文件; 
-u:查找不包含指定類型的文件。

find

    實時、精確、支持衆多查找標準
find 查找路徑 查找標準 查找後進行的處理動做
    查找路徑:默認爲當前目錄
    查找標準:默認爲指定路徑下的全部文件
    處理動做:默認爲顯示

查找標準
    -name 「FILENAME「:對文件名進行精確匹配
    -iname 」FILENAME「:對文件名進行匹配,不區分大小寫
    -regex PATTERN:基於正則表達式進行文件查找

    -user USERNAME:基於文件的屬主進行查找
    -group GROUPNAME: 基於文件的屬組進行查找
    -uid UID:基於文件的UID進行查找     
    -gid GID:基於文件的GID進行查找
    注意:刪除一個用戶,屬於這個用戶屬主文件將只保留UID號
    -nouser:沒有屬主
    -nogroup:沒有屬組

-type:指定文件類型
-size:指定文件大小
    [=|-]#10k
    [=|-]#10m
      [=|-]#10g
find -size 10k
    會匹配9k~10k之間的內容

對文件時間的查找
單位爲天
-atime 
-mtime 
-ctime 
單位爲分鐘
-amin
-mmin
-cmin

對文件權限進行查找
-perm MOOD精確匹配
-perm -MOOD文件權限徹底包含MOOD才匹配
-perm /MOOD任意一位匹配便可

組合查找
-a:默認,可省
-o:或者
-not:
find /tmp -not -user user1 -o -type d等價於find /tmp -not \(-user user1 -a -type d\)

動做
    -print:顯示(默認)
    -print0:不換行顯示
    -ls:相似於ls -l
    -ok COMMAND {} \;每一次操做都須要用戶確認
         例子:find -atime +5 -ok mv {} {}.old \;
    -exec COMMAND  {} \;不須要用戶確認
         例子:find -atime +2 -exec mv {} {}.old \;
    {}文件名佔位符
    -path PATH :指定路徑
    -prune:刪除

除去某一路徑
    
    
    
    
  1. PATH EXPREESION]-a PATH EXPREESION] -a [PATH EXPREESION] -o [PATH EXPREESION]
find /usr/sam      -path "/usr/sam/dir1" -prune      -o -printfind [[
 
這個表達式組合特例能夠用僞碼寫爲
     
     
     
     
if -path "/usr/sam"then -pruneelse -printfi




相關文章
相關標籤/搜索