locate查詢文件名命令詳解

1. locate介紹

locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫文件,這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。爲了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。使用updatedb更新數據庫時會佔用系統的資源,特別是對特別複雜的目錄或要文件較多時,要進行更新數據時,可選擇系統空閒的時間段進行。

2. 語法

locate [選擇參數] [樣式]

3. 選項

-b, --basename  # 僅匹配路徑名的基本名稱
-c, --count     # 只輸出找到的數量
-d, --database DBPATH # 使用DBPATH指定的數據庫,而不是默認數據庫 /var/lib/mlocate/mlocate.db
-e, --existing  # 僅打印當前現有文件的條目
-1 # 如果 是 1.則啓動安全模式。在安全模式下,使用者不會看到權限無法看到 的檔案。這會始速度減慢,因爲 locate 必須至實際的檔案系統中取得檔案的  權限資料。
-0, --null            # 在輸出上帶有NUL的單獨條目
-S, --statistics      # 不搜索條目,打印有關每個數據庫的統計信息
-q                    # 安靜模式,不會顯示任何錯誤訊息。
-P, --nofollow, -H    # 檢查文件存在時不要遵循尾隨的符號鏈接
-l, --limit, -n LIMIT # 將輸出(或計數)限制爲LIMIT個條目
-n                    # 至多顯示 n個輸出。
-m, --mmap            # 被忽略,爲了向後兼容
-r, --regexp REGEXP   # 使用基本正則表達式
    --regex           # 使用擴展正則表達式
-q, --quiet           # 安靜模式,不會顯示任何錯誤訊息
-s, --stdio           # 被忽略,爲了向後兼容
-o                    # 指定資料庫存的名稱。
-h, --help            # 顯示幫助
-i, --ignore-case     # 忽略大小寫
-V, --version         # 顯示版本信息

4. 實戰

4.1 查找和pwd相關的所有文件

$  locate pwd
/bin/pwd
/etc/.pwd.lock
/sbin/unix_chkpwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc
/usr/lib/syslinux/pwd.c32
/usr/share/help/C/empathy/irc-join-pwd.page
/usr/share/help/ca/empathy/irc-join-pwd.page
/usr/share/help/cs/empathy/irc-join-pwd.page
/usr/share/help/de/empathy/irc-join-pwd.page
/usr/share/help/el/empathy/irc-join-pwd.page

4.2 搜索etc目錄下所有以sh開頭的文件

root ~ # locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

4.3 搜索剛創建的文件

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