中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統locate命令的使用方法是什么

發布時間:2022-01-26 11:27:23 來源:億速云 閱讀:364 作者:柒染 欄目:開發技術

小編今天帶大家了解Linux系統locate命令的使用方法是什么,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“Linux系統locate命令的使用方法是什么”的知識吧。

1.1 簡述

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

  • /usr/bin/updatedb: 主要用來更新數據庫,通過crontab自動完成的

  • /usr/bin/locate: 查詢文件位置

  • /etc/updatedb.conf: updatedb的配置文件

  • /var/lib/mlocate/mlocate.db: 存放文件信息的文件

locate會讀取由updatedb準備好的一個或多個數據庫,然后將滿足匹配PATTERN的文件寫到標準輸出,每行一個文件名。假如并未指定--regex選項,則PATTERN可以包含通配符。假如PATTERN中并未包含任何通配符,則locate命令以*PATTERN*模式進行查找。

默認情況下,locate命令并不會檢查數據庫中的文件是否仍然存在,也不會報告在上一次更新數據庫之后產生的文件。

1.2 用法

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

1.3 選項

 -A, --all               打印所有匹配PATTERNs的文件 -b, --basename          只名稱與PATTERNs匹配的文件(例如/test/test.txt,則basename為test.txt) -c, --count             只打印匹配到的文件數目,而不是文件名本身 -d, --database DBPATH   用DBPATH來代替默認的數據庫。DBPATH是一個以:(冒號)分割的數據庫名稱列表 -e, --existing          只打印在調用locate時存在的文件 -L, --follow            當和-e選項一起使用時,如果該文件是一個軟鏈接文件,則會獲取到該軟鏈接對應的實際文件(此為locate命令默認行文)。 -h, --help              打印幫助文檔信息 -i, --ignore-case       當進行文件模式匹配時,忽略大小寫 -l, --limit, -n LIMIT   當成功匹配到LIMIT數量的文件時,退出 -P, --nofollow, -H      當和-e選項一起使用時,如果該文件是一個軟鏈接文件,此時不跟隨鏈接的實際文件 -0, --null              輸出時以ASCII NUL作為分隔符 -S, --statistics        獲得每一個搜索數據庫的統計信息 -q, --quiet             當在讀取和處理數據庫時,遇到錯誤也不打印相關信息 -r, --regexp REGEXP     查找一個基本的模式匹配REGEXP。此選項情況下,不能出現PATTERNs -V, --version           打印locate的版本信息和license信息 -w, --wholename         匹配完整路徑名(默認)

例如查找一個文件名稱為NAME(并不是*NAME*)的文件,可以使用如下:

 # locate -b '\NAME'

應為\本身是一個通配字符,因此這里會禁止隱式的轉化為*NAME*.

1.4 使用范例

1) 搜索目錄下所有以sh開頭的文件

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

2) 包含某個字符串的相關文件

 # locate passwd /etc/passwd /etc/passwd- /etc/pam.d/passwd /etc/security/opasswd /usr/bin/gpasswd /usr/bin/grub2-mkpasswd-pbkdf2 /usr/bin/kpasswd /usr/bin/lppasswd /usr/bin/passwd /usr/bin/smbpasswd ....

3) 限定顯示數量

如果顯示的內容過多,可以使用-n選項來限定顯示數量。

 # locate -n 5 passwd /etc/passwd /etc/passwd- /etc/pam.d/passwd /etc/security/opasswd /usr/bin/gpasswd

4) 使用正則表達式

當需要查找符合特定規則的信息時,可以使用-r選項匹配相應的正則表達式

 //查找以 /var/lib/rpm 開頭的文件 # locate -r ^/var/lib/rpm /var/lib/rpm /var/lib/rpm-state /var/lib/rpm/.dbenv.lock /var/lib/rpm/.rpm.lock .... 
 
 //查找以 zip 結尾的文件 # locate -r zip$ /usr/bin/funzip /usr/bin/gpg-zip /usr/bin/gunzip /usr/bin/gzip /usr/bin/mzip /usr/bin/unzip /usr/bin/zip /usr/lib64/libreoffice/share/config/images.zip /usr/lib64/libreoffice/share/config/images_crystal.zip ....

5) 判斷某一目錄下的文件是否存在(軟鏈接)

 # ls ../lib | while read line; do if [ -f ../lib/$line ]; then  temp="$(locate "$line")"; if [ -n "$temp" ]; then  echo $line; fi fi done

1.5 updatedb的配置文件/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 fuse.sshfs fusectl gfs gfs2 gpfs  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 /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"
  • PRUNE_BIND_MOUNTS: 表示是否進行限制搜索

  • PRUNEFS: 表示排除檢索的文件系統類型

  • PRUNENAME: 表示排除檢索的文件類型

  • PRUNEPATHS: 表示排除檢索的文件目錄

感謝大家的閱讀,以上就是“Linux系統locate命令的使用方法是什么”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永吉县| 博爱县| 都兰县| 鸡泽县| 靖安县| 鹿邑县| 鄂温| 合肥市| 海宁市| 宜阳县| 赞皇县| 丹寨县| 达拉特旗| 金沙县| 尚义县| 垦利县| 津市市| 宜君县| 河北区| 乾安县| 桐庐县| 徐汇区| 依安县| 鄂托克前旗| 泾源县| 大同市| 会东县| 三亚市| 合水县| 攀枝花市| 虞城县| 安岳县| 泗水县| 集贤县| 江山市| 宝坻区| 临澧县| 双桥区| 华亭县| 慈溪市| 定兴县|