linux搜尋命令---
阿新 • • 發佈:2018-12-11
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開頭的檔案: