天天看點

find 和 xargs 和 locate

1. find 指令選項。

find 指令的一般形式為:find pathname -options [-print -exec -ok]

find 指令的參數:

pathname find 指令所查找的目錄路徑。例如:用.來表示目前目錄,用/來表示系統根目錄。

  1. -print:find 指令将比對的檔案輸出到标準輸出。
  2. -exec:find指令對比對的檔案執行該參數所給出的shell指令。相應指令的形式為' comm - and' {} \;,注意{ }和\;之間的空格。
  3. -ok 和 -exec 的作用相同,隻不過以一種更為安全的模式來執行該參數所給出的shell指令,在執行每一個指令之前,都會給出提示,讓使用者來确定是否執行。

find 指令部分選項。find指令有很多選項或表達式,每一個選項前面跟随一個橫杠-。

-name 按照檔案名查找檔案。
-perm 按照檔案權限來查找檔案。
-prune 使用這一選項可以使find指令不在目前指定的目錄中查找,如果同時使用了-depth選項,那麼-prune選項将被find指令忽略。
-user 按照檔案屬主來查找檔案。
-group 按照檔案所屬的組來查找檔案。
-mtime -n +n 按照檔案的更改時間來查找檔案,-n表示檔案更改時間距現在n天以内,+n表示檔案更改時間距現在n天以前。
find指令還有-atime和-ctime選項,但它們都和-mtime選項相似,是以我們在這裡隻介紹-mtime選項。
-nogroup 查找無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改時間比檔案file1新但比檔案file2舊的檔案。
-type 查找某一類型的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符号連結檔案。
f - 普通檔案。
-size n[c] 查找檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。
-depth 在查找檔案時,首先查找目前目錄中的檔案,然後再在其子目錄中查找。
-fstype 查找位于某一類型檔案系統中的檔案,這些檔案系統類型通常可以在配置檔案
/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。
-mount 在查找檔案時不跨越檔案系統mount點。
-follow 如果find指令遇到符号連結檔案,就跟蹤至連結所指向的檔案。
-cpio 對比對的檔案使用cpio指令,将這些檔案備份到錄音帶裝置中。      

使用 name 選項

檔案名選項是find指令最常用的選項,要麼單獨使用該選項,要麼和其他選項一起使用。
可以使用某種檔案名模式來比對檔案,記住要用引号将檔案名模式引起來。
不管目前路徑是什麼,如果想要在自己的根目錄$HOME中查找檔案名符合*.txt的檔案,
使用~作為'pathname參數,波浪号~代表了你的$HOME目錄。
$ find ~ -name "*.txt" -print 在家目錄及子目錄中查找所有的‘*.txt’檔案
$ find . -name "*.txt" -print 在目前目錄及子目錄中查找所有的‘*.txt’檔案
$ find . -name "[A-Z]*" -print 目前目錄及子目錄中查找檔案名以一個大寫字母開頭的檔案
$ find /etc -name "host*" -print 在/etc目錄中查找檔案名以host開頭的檔案
$ find ~ -name "*" -pri或ntf ind . -print 查找$HOME目錄中的檔案
$ find / -name "*" -print 從根目錄開始查找(太消耗系統資源,不建議使用,如果好似用可以加上 & ,讓背景執行)
如果想在目前目錄查找檔案名以兩個小寫字母開頭,跟着是兩個數字,最後是*.txt的檔案,下面的指令就能夠傳回名為ax37.txt的檔案:
$ find . -name "[a-z][a-z][0-9][0-9].txt" -print      

 使用 perm 選項:

如果希望按照檔案權限模式來查找檔案的話,可以采用-perm選項。
你可能需要找到所有使用者都具有執行權限的檔案,或是希望檢視某個使用者目錄下的檔案權限類型。
在使用這一選項的時候,最好使用八進制的權限表示法。
為了在目前目錄下查找檔案權限位為755的檔案,即檔案屬主可以讀、寫、執行,其他使用者可以讀、執行的檔案,可以用:
$ find . -perm 755 -print

如果希望在目前目錄下查找所有使用者都可讀、寫、執行的檔案(要小心這種情況),我們可以使用find指令的-perm選項。
在八進制數字前面要加一個橫杠-。
在下面的指令中-perm代表按照檔案權限查找,而‘007’和你在chmod指令的絕對模式中所采用的表示法完全相同。
$ find . -perm -007 -print      

忽略 某個目錄

如果在查找檔案時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的檔案,那麼可以使用-prune選項來指出需要忽略的目錄。
在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那麼-prune選項就會被find指令忽略。
如果希望在/apps目錄下查找檔案,但不希望在/apps/bin目錄下查找,可以用:
$ find /apps -name "/apps/bin" -prune -o -print      

 使用 user 和 nouser 選項

如果希望按照檔案屬主查找檔案,可以給出相應的使用者名。
例如,在$HOME目錄中查找檔案屬主為dave的檔案,可以用:
$ find ~ -user dave -print
在/etc目錄下查找檔案屬主為uucp的檔案:
$ find /etc -user uucp -print
為了查找屬主帳戶已經被删除的檔案,可以使用-nouser選項。這樣就能夠找到那些屬主
在/etc/passwd檔案中沒有有效帳戶的檔案。在使用-nouser選項時,不必給出使用者名; find指令
能夠為你完成相應的工作。例如,希望在/home目錄下查找所有的這類檔案,可以用:
$ find /home -nouser -print      

使用 group 和 nogroup 選項

就像user和nouser選項一樣,針對檔案所屬于的使用者組, find指令也具有同樣的選項,為
了在/apps目錄下查找屬于accts使用者組的檔案,可以用:
$ find /apps -group accts -print
要查找沒有有效所屬使用者組的所有檔案,可以使用nogroup選項。下面的find指令從檔案
系統的根目錄處查找這樣的檔案
$ fine/-nogroup-print      

按照更改時間查找檔案

如果希望按照更改時間來查找檔案,可以使用mtime選項。如果系統突然沒有可用空間了,
很有可能某一個檔案的長度在此期間增長迅速,這時就可以用 mtime 選項來查找這樣的檔案。

用減号-來限定更改時間在距今n日以内的檔案,
用加号+來限定更改時間在距今n日以前的檔案。

希望在系統根目錄下查找更改時間在5日以内的檔案,可以用:
$ find / -mtime -5 -print
為了在/var/adm目錄下查找更改時間在3日以前的檔案,可以用:
$ find /var/adm -mtime +3 -print      

查找比某個檔案新或舊的檔案

如果希望查找更改時間比某個檔案新但比另一個檔案舊的所有檔案,可以使用-newer選項。
它的一般形式為:
newest_file_name ! oldest_file_name
其中,!是邏輯非符号。

這裡有兩個檔案,它們的更改時間大約相差兩天。
下面給出的find指令能夠查找更改時間比檔案age.awk新但比檔案belts.awk舊的檔案:
如果想使用find指令的這一選項來查找更改時間在兩個小時以内的檔案,
除非有一個現成的檔案其更改時間恰好在兩個小時以前,否則就沒有可用來比較更改時間的檔案。
為了解決這一問題,可以首先建立一個檔案并将其日期和時間戳設定為所需要的時間。這可以用 touch 指令來實作。
假設現在的時間是 23:40,希望查找更改時間在兩個小時以内的檔案,
可以首先建立這樣一個檔案:一個符合要求的檔案已經被建立;這裡我們假設今天是五月四日,
而該檔案的更改時間是 21:40,比現在剛好早兩個小時。
現在我們就可以使用 find 指令的 -newer 選項在目前目錄下查找所有更改時間在兩個小時以内的檔案:
$ find . -newer dstamp -print      

使用 type 選項

UNIX 或 LINUX 系統中有若幹種不同的檔案類型,這部分内容我們在前面的章節已經做了介紹,這裡就不再贅述。
如果要在 /etc 目錄下查找所有的目錄,可以用:
$ find /etc -type d -print
為了在目前目錄下查找除目錄以外的所有類型的檔案,可以用:
$ find . ! -type d -print
為了在/ e t c目錄下查找所有的符号連結檔案,可以用:
$ find /etc -type l -print      

使用 size 選項

可以按照檔案長度來查找檔案,這裡所指的檔案長度既可以用塊( block)來計量,也可以用位元組來計量。
以位元組計量檔案長度的表達形式為 Nc;以塊計量檔案長度隻用數字表示即可。
就我個人而言,我總是使用以位元組計的方式,在按照檔案長度查找檔案時,
大多數人都喜歡使用這種以位元組表示的檔案長度,而不用塊的數目來表示,
除非是在檢視檔案系統的大小,因為這時使用塊來計量更容易轉換。
為了在目前目錄下查找檔案長度大于 1M位元組的檔案,可以用:
$ find . -size +1000000c -print
為了在 /home/apache 目錄下查找檔案長度恰好為 100位元組的檔案,可以用:
$ find /home/apache -size 100c -print
為了在目前目錄下查找長度超過 10 塊的檔案(一塊等于 512位元組),可以用:
$ find . -size +10 -print      

使用 depth 選項

在使用find指令時,可能希望先比對所有的檔案,再在子目錄中查找。使用 depth選項就
可以使find指令這樣做。這樣做的一個原因就是,當在使用find指令向錄音帶上備份檔案系統時,
希望首先備份所有的檔案,其次再備份子目錄中的檔案。
在下面的例子中, find指令從檔案系統的根目錄開始,查找一個名為CON.FILE的檔案。
它将首先比對所有的檔案然後再進入子目錄中查找。
$ find / -name "CON.FILE" -depth -print
 使用mount選項
在目前的檔案系統中查找檔案(不進入其他檔案系統),可以使用find指令的mount選項。
在下面的例子中,我們從目前目錄開始查找位于本檔案系統中檔案名以X C結尾的檔案:
$ find . -name "*.XC" -mount -print      

使用 cpio 選項

cpio指令可以用來向錄音帶裝置備份檔案或從中恢複檔案。可以使用find指令在整個檔案系
統中(更多的情況下是在部分檔案系統中)查找檔案,然後用cpio指令将其備份到錄音帶上。
如果希望使用cpio指令備份/etc、/home和/apps目錄中的檔案,可以使用下面所給出的指令,
不過要記住你是在檔案系統的根目錄下:(在上面的例子中,第一行末尾的\告訴shell指令還未結束,忽略\後面的回車。)
在上面的例子中,應當注意到路徑中缺少/。這叫作相對路徑。
之是以使用相對路徑,是因為在從錄音帶中恢複這些檔案的時候,可以選擇恢複檔案的路徑。
例如,可以将這些檔案先恢複到另外一個目錄中,對它們進行某些操作後,再恢複到原始目錄中。
如果在備份時使用了絕對路徑,例如/etc,那麼在恢複時,就隻能恢複到/etc目錄中去,别無其他選擇。
在上面的例子中,我告訴find指令首先進入/ e t c目錄,然後是/home和/apps目錄,先比對這些目錄下的檔案,
然後再比對其子目錄中的檔案,所有這些結果将通過管道傳遞給cpio指令進行備份。
順便說一下,在上面的例子中cpio指令使用了C65536選項,我本可以使用B選項,不過這
樣每塊的大小隻有 512 位元組,而使用了C65536 選項後,塊的大小變成了 64K 位元組(65536 / 1024)。      

使用 exec 或 ok 來執行 shell 指令

當比對到一些檔案以後,可能希望對其進行某些操作,這時就可以使用 -exec選項。
一旦find指令比對到了相應的檔案,就可以用 -exec選項中的指令對其進行操作
(在有些作業系統中隻允許 -exec 選項執行諸如 ls 或 ls -l這樣的指令)。
大多數使用者使用這一選項是為了查找舊檔案并删除它們。
這裡我強烈地建議你在真正執行 rm 指令删除檔案之前,最好先用ls指令看一下,确認它們是所要删除的檔案。

exec選項後面跟随着所要執行的指令,然後是一對兒{ },一個空格和一個\,最後是一個分号。

為了使用 exec 選項,必須要同時使用 print 選項。
如果驗證一下find指令,會發現該指令隻輸出從目前路徑起的相對路徑及檔案名。
為了用ls -l指令列出所比對到的檔案,可以把ls -l指令放在find指令的 -exec選項中,

例如:上面的例子中,find指令比對到了目前目錄下的所有普通檔案,并在 -exec 選項中使用ls -l 指令将它們列出。
為了在 /logs目錄中查找更改時間在5日以前的檔案并删除它們,可以用:
$ find logs -type f -mtime +5 -exec rm {} \;

記住,在shell中用任何方式删除檔案之前,應當先檢視相應的檔案,一定要小心!

當使用諸如 mv 或 rm 指令時,可以使用 -exec選項的安全模式。
它将在對每個比對到的檔案進行操作之前提示你。

在下面的例子中, find 指令在目前目錄中查找所有檔案名以 .LOG 結尾、更改時間在5日以上的檔案,并删除它們,
隻不過在删除之前先給出提示。按y鍵删除檔案,按n鍵不删除。
任何形式的指令都可以在 -exec 選項中使用。

在下面的例子中我們使用 grep 指令。
 
首先比對所有檔案名為 “passwd*”的檔案,例如passwd、passwd.old、passwd.bak,
然後執行 grep 指令看看在這些檔案中是否存在一個 rounder使用者。

find指令的例子
我們已經介紹了find指令的基本選項,下面給出find指令的一些其他的例子。
為了比對 $HOME 目錄下的所有檔案,下面兩種方法都可以使用:
$ find $HOME -print
$ find ~ -print

為了在目前目錄中查找 suid 置位,檔案屬主具有讀、寫、執行權限,并且檔案所屬組的用
戶和其他使用者具有讀和執行的權限的檔案,可以用:
$ find . -type f -perm 4755 -print

為了查找系統中所有檔案長度為0的普通檔案,并列出它們的完整路徑,可以用:
$ find / -type f -size 0 -exec ls -l {} \;

為了查找 /var/logs 目錄中更改時間在7日以前的普通檔案,并删除它們,可以用:
$ find /var/logs -type f -mtime +7 -exec rm {} \;

為了查找系統中所有屬于 audit 組的檔案,可以用:
$find /-name -group audit -print

我們的一個審計系統每天建立一個審計日志檔案。日志檔案名的最後含有數字,
這樣我們一眼就可以看出哪個檔案是最新的,哪個是最舊的。
admin.log 檔案編上了序号:admin.log.001、admin.log.002等等。

下面的find指令将删除 /logs 目錄中通路時間在7日以前、含有數字字尾的 admin.log 檔案。
該指令隻檢查三位數字,是以相應日志檔案的字尾不要超過 999。
$ find /logs -name 'admin.log[0-9][0-9]'[-0a-t9i]me +7 -exec rm {} \;

為了查找目前檔案系統中的所有目錄并排序,可以用:
$ find . -type d -print -local -mount |sort

為了查找系統中所有的r m t錄音帶裝置,可以用:
$ find /dev/rmt -print      

2. xargs

在使用 find 指令的 -exec 選項處理比對到的檔案時, find指令将所有比對到的檔案一起傳遞給exec執行。

不幸的是,有些系統對能夠傳遞給exec的指令長度有限制,這樣在find指令運作幾分鐘之後,就會出現溢出錯誤。

錯誤資訊通常是“參數列太長”或“參數列溢出”。這就是xargs指令的用處所在,特别是與find指令一起使用。

find指令把比對到的檔案傳遞給xargs指令,而xargs指令每次隻擷取一部分檔案而不是全部,不像-exec選項那樣。

這樣它可以先處理最先擷取的一部分檔案,然後是下一批,并如此繼續下去。

在有些系統中,使用-exec選項會為處理每一個比對到的檔案而發起一個相應的程序,并非将比對到的檔案全部作為參數一次執行;這樣在有些情況下就會出現程序過多,系統性能下降的問題,因而效率不高;而使用 xargs指令則隻有一個程序。

另外,在使用xargs指令時,究竟是一次擷取所有的參數,還是分批取得參數,

以及每一次擷取參數的數目都會根據該指令的選項及系統核心中相應的可調參數來确定。

讓我們來看看xargs指令是如何同find指令一起使用的,并給出一些例子。

下面的例子查找系統中的每一個普通檔案,然後使用xargs指令來測試它們分别屬于哪類檔案:
下面的例子在整個系統中查找記憶體資訊轉儲檔案(core dump) ,然後把結果儲存到
/tmp/core.log 檔案中:
$ find . -name "core" -print | xargs echo "" >/tmp/core.log


下面的例子在/apps/audit目錄下查找所有使用者具有讀、寫和執行權限的檔案,并收回相應的寫權限:
$ find /apps/audit -perm -7 -print | xargs chmod o-w


在下面的例子中,我們用grep指令在所有的普通檔案中搜尋device這個詞:
$ find / -type f -print | xargs grep "device"


在下面的例子中,我們用grep指令在目前目錄下的所有普通檔案中搜尋DBO這個詞:
$ find . -name *\-type f -print | xargs grep "DBO"
注意,在上面的例子中, \用來取消find指令中的*在shell中的特殊含義。      

小結

find指令是一個非常優秀的工具,它可以按照使用者指定的準則來比對檔案。使用exec和xargs可以使使用者對所比對到的檔案執行幾乎所有的指令。

3. locate 指令

locate,定位的意思,作用是讓使用者可以快速的搜尋系統中是否有指定的檔案。

指令功能:

locate指令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程式來更新,updatedb是由cron daemon周期性建立的,locate指令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在内定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)

locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的資料庫内,尋找合乎範本樣式條件的檔案或目錄錄,可以使用特殊字元(如”*” 或”?”等)來指定範本樣式,如指定範本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括 子目錄在内的所有檔案。

locate指令和find找尋檔案的功能類似,但locate是透過update程式将硬碟中的所有檔案和目錄資料先建立一個索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由作業系統管理,但也可以直接下達update強迫系統立即修改索引資料庫。

locate指令用于查找檔案,Locate可以很快速的搜尋檔案系統内是否有指定的檔案。其方法是先建立一個包括系統内所有檔案名稱及路徑的資料庫,之後當尋找時就隻需查詢這個資料庫,而不必實際深入檔案系統之中了。是以它需要一個資料庫(預設:slocate.db),一個配置檔案(updatedb.conf),一個crontab(定時執行) 

  • 先運作updatedb, 可直接指令執行,也可以放在crontab裡面執行
  • 然後在生成的/var/lib/slocate/slocate.db資料庫中查找。

是以

  • locate的速度比find快,因為它并不是真的查找檔案,而是查資料庫
  • locate的查找并不是實時的,而是以資料庫的更新為準,一般是系統自己維護.
  • locate的更新資料庫指令:locate -- u   #注意之間有空格
# ls -lart mlocate.db                    #更新前
-rw-r----- 1 root slocate 1286901 Aug  8 03:23 mlocate.db

# updatedb           //-->如果要查詢最新的,建議更新資料庫

# ls -lart mlocate.db                    #更新後比更新前檔案明顯大些
-rw-r----- 1 root slocate 1296268 Aug  8 11:10 mlocate.db      

locate 指令特點:

  • 1) "locate"的速度比"find"快,因為它并不是真的查找檔案,而是查資料庫。
  • 2) 建立的檔案,我們立即用"locate"指令去查找,一般是找不到的,因為資料庫的更新不是實時的,資料庫的更新時間由系統維護。
  • 3) "locate"指令所搜尋的背景資料庫在"/var/lib/mlocate"這個目錄下,可能有些Linux系統位置不同,具體我們可以用"locate locate"查詢。
  • 4) 我們可以用"updatedb"指令來更新資料庫,這樣就能查詢到剛才建立的檔案了。
  • 5) 并不是所有的目錄下的檔案都會用"locate"指令搜尋到,"/etc/updatedb.conf"這個配置檔案中,配置了一些"locate"指令的一些規則。

/etc/updatedb.conf 配置檔案解析:

1) PRUNE_BIND_MOUNTS = "yes"

       值為"yes"時開啟搜尋限制,此時,下邊的配置生效;為"no"時關閉搜尋限制。

2) PRUNEFS =

       後邊跟搜尋時,不搜尋的檔案系統。

3) PRUNENAMES = 

       後邊跟搜尋時,不搜尋的檔案類型。

4) PRUNEPATHS = 

       後邊跟搜尋時,不搜尋的檔案所在的路徑。

1. 指令格式:​

​locate [選項]​

2. 常用選項:

"locate -c" 查詢指定檔案的數目。(c為count的意思)
"locate -e" 隻顯示目前存在的檔案條目。(e為existing的意思)
"locate -h" 顯示"locate"指令的幫助資訊。(h為help的意思)
"locate -i" 查找時忽略大小寫差別。(i為ignore的意思)
"locate -n" 最大顯示條數" 至多顯示"最大顯示條數"條查詢到的内容。
"locate -r" 使用正則運算式做尋找的條件。(r為regexp的意思)      

3. 常用範例:

1) 查找etc目錄下所有以sh開頭的檔案

find 和 xargs 和 locate

2) 查找etc目錄下所有以sh開頭的檔案的數目

find 和 xargs 和 locate

3) 查找etc目錄下所有以sh開頭的檔案,并最多顯示2條

find 和 xargs 和 locate

4) 建立的檔案,更新資料庫後就能查詢到了

find 和 xargs 和 locate

5) 查找檔案時,不區分大小寫

find 和 xargs 和 locate

6) 使用正規表達式,查找以akefile結尾的檔案,并最多顯示5條

find 和 xargs 和 locate

7) 隻顯示目前存在的檔案條目

find 和 xargs 和 locate

# locate -S           //-->檢視統計資訊,目錄,檔案,比特數适用情況

Database /var/lib/mlocate/mlocate.db:
    3,315 directories
    37,228 files
    1,504,439 bytes in file names
    594,851 bytes used to store database      

# locate -V          //-->檢視版本資訊  

<pre name="code" class="plain">mlocate 0.22.2
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.
This program is provided with NO WARRANTY, to the extent permitted by law.      

# locate -h          //-->檢視幫助資訊    

Usage: locate [OPTION]... [PATTERN]...
Search for entries in a mlocate database.
  -b, --basename         match only the base name of path names
  -c, --count            only print number of found entries
  -d, --database DBPATH  use DBPATH instead of default database (which is
                         /var/lib/mlocate/mlocate.db)
  -e, --existing         only print entries for currently existing files
  -L, --follow           follow trailing symbolic links when checking file
                         existence (default)
  -h, --help             print this help
  -i, --ignore-case      ignore case distinctions when matching patterns
  -l, --limit, -n LIMIT  limit output (or counting) to LIMIT entries
  -m, --mmap             ignored, for backward compatibility
  -P, --nofollow, -H     don't follow trailing symbolic links when checking file
                         existence
  -0, --null             separate entries with NUL on output
  -S, --statistics       don't search for entries, print statistics about each
                         used database
  -q, --quiet            report no error messages about reading databases
  -r, --regexp REGEXP    search for basic regexp REGEXP instead of patterns
      --regex            patterns are extended regexps
  -s, --stdio            ignored, for backward compatibility
  -V, --version          print version information
  -w, --wholename        match whole path name (default)      

# locate /etc/sh           //-->查找/etc/sh*

/etc/shadow
/etc/shadow-
/etc/shadow.bup
/etc/shadow.bup.20140725-214324
/etc/shells      

# locate -n 5 apache       //-->隻找帶有apache目錄,顯示其中5行

/etc/selinux/targeted/modules/active/modules/apache.pp
/opt/ddd/oma/3rdparty/apache-tomcat
/opt/ddd/oma/3rdparty/apache-tomcat/LICENSE
/opt/ddd/oma/3rdparty/apache-tomcat/NOTICE
/opt/ddd/oma/3rdparty/apache-tomcat/RELEASE-NOTES      

# locate -r makefile$      //-->查找結尾為makefile的檔案目錄

/usr/share/doc/bcel-5.2/verifier/GNUmakefile      

# locate -n 3 -r  ^\/opt   //-->查找以/opt開頭的目錄,且隻顯示3行

/opt
/opt/ddd
/opt/sss      

#locate -i /HTTP           //-->查找/HTTP目錄,忽略大小寫

/usr/share/perl5/Net/HTTP/NB.pm
/usr/share/perl5/URI/http.pm
/usr/share/perl5/URI/https.pm      

# locate -c httpd.conf     //-->統計查找到的數量 

3      

# cat /etc/updatedb.conf   //-->配置檔案

PRUNE_BIND_MOUNTS = "yes"
PRUNEFS="9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs efs100 lofs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache
/var/spool/cups /var/spool/squid /var/tmp"
PRUNEPATHS="/efs /efsroots"
export PRUNEPATHS