locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。[b] (1)用法:[/b]
[b] 用法: Locate [選項] [參數][/b][b] (2)功能:[/b]
功能: 在mlocate數據庫中搜索條目,用來快速查找文件或目錄
[b] (3)選項參數:[/b] 1) -d<目錄>或--database=<目錄>: 指定數據庫所在的目錄
2) -i, --ignore-case 匹配模式時忽略大小寫區別 3) --help: 顯示幫助
4) --version: 顯示版本信息 5) -d, --database DBPATH 用 DBPATH 替代默認的數據庫(/var/lib/mlocate/mlocate.db)
[b] (4)實例:[/b] 1)[root@localhost Documents]# loacte less1 在各個目錄下查找名為less1的這個文件或者文件夾
[root@localhost Documents]# ll 總用量 20 -rw-r--r--. 1 root root 664 5月 9 07:59 head_text -rw-r--r--. 1 root root 45 5月 9 08:15 less1 -rw-r--r--. 1 root root 57 5月 9 08:16 less2 -rw-r--r--. 1 root root 259 5月 12 21:53 tail_text -rw-r--r--. 1 root root 216 5月 12 22:24 tempory [root@localhost Documents]# slocate less1 //經驗證,已經沒有slocate這個命令 bash: slocate: 未找到命令... 相似命令是: 'locate' [root@localhost Documents]# loacte less1 bash: loacte: 未找到命令... 相似命令是: 'locate'2)[root@localhost Documents]# locate Documents 如果是搜索的是文件夾的名稱,則默認會先顯示該文件夾及以下的各個文件及文件夾
[root@localhost Documents]# locate Documents /home/sunjimeng/Documents /home/sunjimeng/Documents/head_text /home/sunjimeng/Documents/less1 /home/sunjimeng/Documents/less2 /home/sunjimeng/Documents/tail_text /home/sunjimeng/Documents/tempory /usr/share/dbus-1/services/org.gnome.Documents.GDataMiner.service /usr/share/dbus-1/services/org.gnome.Documents.SearchProvider.service /usr/share/dbus-1/services/org.gnome.Documents.ZpjMiner.service /usr/share/glib-2.0/schemas/org.gnome.Documents.enums.xml3)[root@localhost Documents]# locate newlocate 和updatedb 為了避免新建的文件夾找不到,可以立即更新數據庫(updatedb命令)
[root@localhost Documents]# touch newlocate //新建文件 [root@localhost Documents]# ll //已經存在 總用量 20 -rw-r--r--. 1 root root 664 5月 9 07:59 head_text -rw-r--r--. 1 root root 45 5月 9 08:15 less1 -rw-r--r--. 1 root root 57 5月 9 08:16 less2 -rw-r--r--. 1 root root 0 5月 15 18:21 newlocate -rw-r--r--. 1 root root 259 5月 12 21:53 tail_text -rw-r--r--. 1 root root 216 5月 12 22:24 tempory [root@localhost Documents]# locate newlocate //但並找不到 [root@localhost Documents]# updatedb //更新數據庫 [root@localhost Documents]# locate newlocate //待計算機反應2秒後,再執行locate命令,就能找到了 /home/sunjimeng/Documents/newlocate4)查找指定目錄下的某個文件,也可以用通配符
[root@localhost /]# locate /home/sunjimeng/Documents/*e /home/sunjimeng/Documents/newlocate5)[root@localhost /]# locate -i /home/sunjimeng/Documents/*Cate 在使用通配符時忽略大小寫
[root@localhost /]# locate -i /home/sunjimeng/Documents/*Cate /home/sunjimeng/Documents/newlocate [root@localhost /]# locate /home/sunjimeng/Documents/*Cate [root@localhost /]#6)[root@localhost /]# locate /home/sunjimeng/Documents/le 尋找以特定字符串開頭的文件或文件夾
[root@localhost /]# locate /home/sunjimeng/Documents/le //不加通配符也可以 /home/sunjimeng/Documents/less1 /home/sunjimeng/Documents/less2 [root@localhost /]# locate /home/sunjimeng/Documents/le* /home/sunjimeng/Documents/less1 /home/sunjimeng/Documents/less2 [root@localhost /]#7)[root@localhost Documents]# locate --help
[root@localhost Documents]# locate --help Usage: locate [OPTION]... [PATTERN]... Search for entries in a mlocate database. -A, --all only print entries that match all patterns -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) 將 bug 報告給 [email protected].[b] (5)其他:[/b]
說明:
locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。locate命令可以在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon周期性建立的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)
locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎范本樣式條件的檔案或目錄錄,可以使用特殊字元(如”*” 或”?”等)來指定范本樣式,如指定范本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括 子目錄在內的所有檔案。