2022
我们一起努力

Linux系统locate命令详解

在Linux系统中 locate命令可以帮助用户迅速查找符合条件的文档,其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。下面良许教程网为大家分享一下Linux系统中locate命令具体使用方法。

Linux系统locate命令详解

语法

 locate [-d ][--help][--version][范本样式...]

参数:

  • -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 — 显示版本信息

案例演示:

查找包含某个字符串的相关文件

 [root@localhost ~]# locate ifconfig
 /home/oracle/app/oracle/product/11.2.0/dbhome_1/sy**an/admin/scripts/ifconfig.sh
 /usr/libexec/hypervkvpd/hv_set_ifconfig
 /usr/**in/ifconfig
 /usr/**in/pifconfig
 /usr/share/man/de/man8/ifconfig.8.gz
 /usr/share/man/fr/man8/ifconfig.8.gz
 /usr/share/man/man8/ifconfig.8.gz
 /usr/share/man/man8/pifconfig.8.gz
 /usr/share/man/pt/man8/ifconfig.8.gz
 /usr/share/man/zh_CN/man8/ifconfig.8.gz
 [root@localhost ~]#

搜索目录下所有以 sh开头的文件

 [root@localhost ~]# locate /bin/sh
 /home/oracle/app/oracle/product/11.2.0/dbhome_1/perl/bin/shasum
 /usr/bin/sh
 /usr/bin/sha1sum
 /usr/bin/sha224sum
 /usr/bin/sha256sum
 /usr/bin/sha384sum

指定显示数量

如果显示的内容过多,可以使用 -n 选项来限定显示数量。

 [root@localhost ~]# locate -n 3 passwd
 /etc/passwd
 /etc/passwd-
 /etc/pam.d/passwd
 [root@localhost ~]#

匹配模式时忽略大小写区别

当查找不需要区分大小写时,使用 -i 选项。

 [root@localhost ~]# locate -i -n 5 passwd
 /etc/passwd
 /etc/passwd-
 /etc/pam.d/passwd
 /etc/security/opasswd
 /home/oracle/app/oracle/product/11.2.0/dbhome_1/apex/images/htmldb/icons/32x32/item_passwd.gif
 [root@localhost ~]#

搜索基本正则表达式 REGEXP 来代替模式

当需要查找符合特定规则的信息时,可以使用 -r 选项匹配相应的正则表达式。

 //查找以/var/lib/rpm开头的文件
 [root@localhost ~]# locate -r ^/var/lib/rpm
 /var/lib/rpm
 /var/lib/rpm-state
 /var/lib/rpm/.dbenv.lock
 /var/lib/rpm/.rpm.lock
 /var/lib/rpm/Basenames
 /var/lib/rpm/Conflictname
 /var/lib/rpm/Dirnames
 /var/lib/rpm/Group
 /var/lib/rpm/Installtid
 //查找etc.conf结尾的文件
 [root@localhost ~]# locate -r etc.conf$
 /usr/lib/tmpfiles.d/etc.conf
 [root@localhost ~]#

查找最近变动的文件

 # 新建文件
 [root@localhost ~]# touch new_file
 [root@localhost ~]# locate ~/new_file
 [root@localhost ~]# updatedb
 [root@localhost ~]# locate ~/new_file
 /root/new_file
 [root@localhost ~]#
 # 删除文件
 [root@localhost ~]# rm -rf file.txt
 [root@localhost ~]# locate ~/file.txt
 /root/file.txt
 [root@localhost ~]# updatedb
 [root@localhost ~]# locate ~/file.txt
 [root@localhost ~]#

注意:使用 locate 命令查不到最近变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

查看统计信息

 [deng@localhost test]$ locate -S
 数据库 /var/lib/mlocate/mlocate.db:
     18,935 文件夹
     231,751 文件
     13,753,723 文件名中的字节数
     5,707,750 字节用于存储数据库
 [deng@localhost test]$

查看passwd统计数量

 [root@localhost /]# locate -c passwd
 183
 [root@localhost /]#

update相关配置文件

 [root@localhost /]# vim /etc/updatedb.conf
 [root@localhost /]#

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文来源:www.lxlinux.net/1964.html,若引用不当,请联系修改。

赞(0)
文章名称:《Linux系统locate命令详解》
文章链接:https://www.fzvps.com/179354.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!