用 locate 指令尋找檔案
一般在 unix 系統若要尋找某個檔案,你可能會用 ls、find、which、whereis .... 今天來推薦一個更好用、更快的 locate 指令。
ls 或 find 都是到檔案配置表去找你欲搜尋的檔案,茫茫檔案海...所以通常都要好一陣子。
而 locate 找檔案是用查資料庫的方式所以速度很快,他會每天以 cron.daily 去執行「mlocate.cron」來更新檔案的列表,缺點是今天新增的檔案會找不到。
如果你的 Linux / CentOS 是以 minimal 最小安裝,那麼預設是沒有 locate 這個指令的,你要以「sudo yum install -y mlocate」來安裝他。
--- locate 指令使用方式 -----------------------------
語法:locate [參數] 檔案名稱
-i : 忽略大小寫 (預設大小寫是不同的)
-r: 以 regular express 的方式搜尋
※ locate /etc/pa
存在資料庫的索引資料是以完整路徑的方式存放,所以當你以 locate /etc/pa 要去找 /etc/ 目錄下 pa 開頭的檔案,可能會意外的多找了很多不是你想找的,例如底下
/home/user/temp/vmware-tools-distrib/lib/lib64/libconf/etc/pango
雖然 locate 可以類似 ls 指令來用,但路徑中的某段是可能會被誤認的。
※ locate /etc/sh 就可以很單純的找出 /etc/ 底下 sh 開頭的檔案
※ locate -i filename 忽略大小寫來尋找檔案
※ locate -r filename$
因為 locate 是尋找資料庫內的 /完整路徑/檔名 ,有可能在找某個 filename 時多找出了以這個名稱為資料夾的檔案,這不是你想要的,你可以用 -r 參數表示要用 regular express 搭配 $ 表示要找最後面,也就是檔名
$ locate -r conf$
/boot/grub/grub.conf
/etc/Trolltech.conf
/etc/anthy-conf q
......
※ locate -n 5 /etc/pa 只顯示前面5筆,當然你也可以搭配 head、tail 來使用,例如: locate /etc/pa | tail -20 找符合的最後20筆
ls 或 find 都是到檔案配置表去找你欲搜尋的檔案,茫茫檔案海...所以通常都要好一陣子。
而 locate 找檔案是用查資料庫的方式所以速度很快,他會每天以 cron.daily 去執行「mlocate.cron」來更新檔案的列表,缺點是今天新增的檔案會找不到。
如果你的 Linux / CentOS 是以 minimal 最小安裝,那麼預設是沒有 locate 這個指令的,你要以「sudo yum install -y mlocate」來安裝他。
--- locate 指令使用方式 -----------------------------
語法:locate [參數] 檔案名稱
-i : 忽略大小寫 (預設大小寫是不同的)
-r: 以 regular express 的方式搜尋
※ locate /etc/pa
存在資料庫的索引資料是以完整路徑的方式存放,所以當你以 locate /etc/pa 要去找 /etc/ 目錄下 pa 開頭的檔案,可能會意外的多找了很多不是你想找的,例如底下
/home/user/temp/vmware-tools-distrib/lib/lib64/libconf/etc/pango
雖然 locate 可以類似 ls 指令來用,但路徑中的某段是可能會被誤認的。
※ locate /etc/sh 就可以很單純的找出 /etc/ 底下 sh 開頭的檔案
※ locate -i filename 忽略大小寫來尋找檔案
※ locate -r filename$
因為 locate 是尋找資料庫內的 /完整路徑/檔名 ,有可能在找某個 filename 時多找出了以這個名稱為資料夾的檔案,這不是你想要的,你可以用 -r 參數表示要用 regular express 搭配 $ 表示要找最後面,也就是檔名
$ locate -r conf$
/boot/grub/grub.conf
/etc/Trolltech.conf
/etc/anthy-conf q
......
※ locate -n 5 /etc/pa 只顯示前面5筆,當然你也可以搭配 head、tail 來使用,例如: locate /etc/pa | tail -20 找符合的最後20筆
留言
張貼留言