1. 程式人生 > >linux搜尋命令---

linux搜尋命令---

locate命令簡介

locate命令用來查詢檔案或目錄。locate命令的查詢速度要比find快很多,原因在於他們的查詢的方式不同。locate搜尋的是資料庫/var/lib/mlocate/mlocate.db,因此在後臺數據庫中只需按照檔名搜尋,搜尋速度更快。然而find進行檔案查詢時,需要搜尋整個磁碟目錄,因此查詢速度回相對較慢。

linux系統會自動更新mlocate.db資料庫,並別每天自動更新一次(不是實時更新的),因此在使用whereis和locate查詢檔案時,有時會找到已經被刪除的資料,或者剛剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。 格式:locate [OPTION]… [PATTERN]…

locate命令格式

 - locate檔名
在後臺數據庫中按檔名搜尋,搜尋速度更快

 - /var/lib/mlocate/mlocate.db
locate命令所搜尋的後臺資料庫

 - update
 更新資料庫

/etc/updatedb.conf配置檔案
PRUNE_BIND_MOUNTS = "yes"	//開啟搜尋限制
      2 PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs c        puset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 j        ffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs s        elinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs" 		//搜尋時,不搜尋的檔案系統
      3 PRUNENAMES = ".git .hg .svn"		//搜尋時,不搜尋的檔案型別
      4 PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/s        pool/squid /var/tmp" 		//搜尋時,不搜尋的路徑

選項

-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)

查詢某個檔案的路徑: 在這裡插入圖片描述 在etc目錄下查詢以my開頭的檔案: 在這裡插入圖片描述