良许Linux教程网 干货合集 Linux系统locate命令详解

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/sysman/admin/scripts/ifconfig.sh
 /usr/libexec/hypervkvpd/hv_set_ifconfig
 /usr/sbin/ifconfig
 /usr/sbin/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

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部