小编给大家分享一下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系统locate命令怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!