1. 程式人生 > >每天一個linux命令:locate

每天一個linux命令:locate

1、命令簡介

        locate(locate) 命令用來查詢檔案或目錄。 locate命令要比find -name快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫/var/lib/mlocate/mlocate.db 。這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且每天自動更新一次,因此,我們在用whereis和locate 查詢檔案時,有時會找到已經被刪除的資料,或者剛剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。整個locate工作其實是由四部分組成的:

  1. /usr/bin/updatedb   主要用來更新資料庫,通過crontab自動完成的

  2. /usr/bin/locate         查詢檔案位置

  3. /etc/updatedb.conf   updatedb的配置檔案

  4. /var/lib/mlocate/mlocate.db  存放檔案資訊的檔案

2、用法

locate [OPTION]... [PATTERN]...

3、選項

  -b, --basename         match only the base name of path names
  
-c, --count 只輸出找到的數量 -d, --database DBPATH 使用DBPATH指定的資料庫,而不是預設資料庫 /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 顯示幫助
-i, --ignore-case 忽略大小寫 -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 eachused database -q, --quiet 安靜模式,不會顯示任何錯誤訊息 -r, --regexp REGEXP 使用基本正則表示式 --regex 使用擴充套件正則表示式 -s, --stdio ignored, for backward compatibility -V, --version 顯示版本資訊 -w, --wholename match whole path name (default)

4、示例

示例1: 搜尋etc目錄下所有以my開頭的檔案
[[email protected] lib]# locate /etc/my
/etc/my.cnf
示例2:新增的檔案無法locate,使用updatedb
[[email protected] ~]# touch new.txt
[[email protected] ~]# locate new.txt
[[email protected] ~]# updatedb
[[email protected] ~]# locate new.txt
/root/new.txt
示例3:updatedb的配置檔案/etc/updatedb.conf
[[email protected] ~]# 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"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

第一行PRUNE_BIND_MOUNTS="yes"的意思是:是否進行限制搜尋。

第二行是排除檢索的檔案系統型別,即列出的檔案系統型別不進行檢索。

第二行表示對哪些字尾的檔案排除檢索,也就是列在這裡面的字尾的檔案跳過不進行檢索。不同字尾之間用空格隔開。

第四行是排除檢索的路徑,即列出的路徑下的檔案和子資料夾均跳過不進行檢索。updatedb之後使用locate仍然找不到想要檔案

可以檢查掛載的目錄是否被忽略了

相關推薦

每天一個linux命令:locate

1、命令簡介         locate(locate) 命令用來查詢檔案或目錄。 locate命令要比find -name快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫/var/lib/mlocate/mlocate.db 。這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且

每天一個linux命令(18):locate 命令

一次 clu ado 模式 pda -o gic style art locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的數據庫,之後當尋找時就只需查詢這個數據庫,而不必實際深入檔案系統之中了。在一般的 dis

每天一個linux命令(20):常用檔案搜尋命令locate/find/which/whereis

004.檔案搜尋命令         04-01.檔案搜尋命令locate             a.locate 功能單一,只搜尋檔名; &nbs

每天一個linux命令locate 命令

locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,資料庫的建立都被放在 cronta

每天一個linux命令8之grep高級篇

表達式 大寫 world exp 大寫字母 重復數 tools href 反向 1語法 grep -[acinv] ‘搜索內容串‘ filename-a 以文本文件方式搜索-c 計算找到的符合行的次數-i 忽略大小寫-n 順便輸出行號-v 反向選擇,即找 沒有搜索

每天一個linux命令(16):tail命令

nvi 系統 strong 維基百科 ron .com linux tro 聯系 版權聲明更新:2017-05-20博主:LuckyAlan聯系:[email protected]/* */聲明:吃水不忘挖井人,轉載請註明出處! 1 文章介紹 本文介紹了Linu

每天一個linux命令(11):cat命令

部分 ron linu mv命令 平臺 linux下 一個 介紹 inux 版權聲明更新:2017-05-15博主:LuckyAlan聯系:[email protected]/* */聲明:吃水不忘挖井人,轉載請註明出處! 1 文章介紹 本文介紹了Linux下面

每天一個linux命令(9):cp命令

系統 lin 維基 介紹 參考 vip 聲明 com 開發平臺 版權聲明更新:2017-05-13博主:LuckyAlan聯系:[email protected]/* */聲明:吃水不忘挖井人,轉載請註明出處! 1 文章介紹 本文介紹了Linux下面的cp命令。

【轉載】每天一個Linux命令

mkdir 命令 結構 oca archive mic post rmdir 命令 每天 sof 每天一個linux命令(1) : ls 命令 每天一個linux命令(2) : cd 命令 每天一個linux命令(3) : pwd 命令 每天一個linux命令(4)

每天一個Linux命令001——ls

簡單 relink rect sql 目錄 print logs apach 我只 聯想記憶: ls - list directory 語法:   ls [OPTION]... [FILE]...   說明:ls是命令,OPTION是選項例如-a、-l,FIL

每天一個linux命令

文件和目錄屬性 vmstat命令 find命令 性能 參考 url http 目錄 standard 開始詳細系統的學習linux常用命令,堅持每天一個命令,所以這個系列為每天一個linux命令。學習的主要參考資料為:   1.《鳥哥的linux私房菜》   2.http:

每天一個linux命令(4):mkdir命令

指定位置 cnblogs 同名 parent --help pos uri 不存在 必須 linux mkdir 命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。 1.命令格式: mkdir [選

每天一個linux命令(5):rm 命令

每天 幫助信息 rbo 總計 com 刪除 強行 高度 linux中 昨天學習了創建文件和目錄的命令mkdir ,今天學習一下linux中刪除文件和目錄的命令: rm命令。rm是常用的命令,該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文

每天一個linux命令(13):less 命令

文件中 參數 使用 ech height 查看進程 str idt 目錄 less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻

每天一個linux命令(1):scp 命令

filename use des 本地文件 lin oca www tro 服務器 scp命令主要用於兩個服務器之間文件的傳輸。 1、從服務器下載文件 scp [email protected]:/path/filename /tmp/local_destin

(轉)每天一個linux命令(9):touch 命令

cal log bsp 參考 一個 ati linux命令 包括 ces linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件。 1 基本使用 1.命令格式: touch [選項]... 文件... 2.

每天一個linux命令】wc

ror class pre inux 單詞 字節數 出現 行數 同一行 wc:統計 # wc -l/c/w #統計行數/字節數/字數(1個單詞/1個中文算一個數) wc -l yy.log cat yy.log |wc -l 1、當前目錄下文件個數 ls -lR

每天一個linux命令】curl

bsp linux cit 焦作 pos 參數 match 轉義 url curl:訪問http請求 1、不帶參數的 get 訪問網址 curl https://www.baidu.com/ 2、帶參數的 post 訪問網址 # 原始http請求1 http://19

每天一個linux命令】grep

http pre 內容 技術分享 image 忽略 linux filename com 【簡介】 grep:一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來 【grep常用用法】 [root@www ~]# grep [-acinv] [--col

每天一個linux命令(50):crontab命令

指定 檢查 var 編輯 特殊字符 post rip 標準輸入 運行時間 前一天學習了 at 命令是針對僅運行一次的任務,循環運行的例行性計劃任務,linux系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作