输入"文件的部分名称"后,就能够得到结果。但是使用上有一定的限制,因为locate寻找的数据是由"已创建的数据库/var/lib/mlocate"里面的数据所搜寻到的,所有不用直接去硬盘当中存取数据。而数据库的创建默认是在每天执行一次(每个distribution都不同,CentOS 7.x是每天更新数据库一次),所有当新建起来的文件,在数据库更新之前搜寻该文件,那么locate会告诉你找不到。
更新locate数据库的方法非常简单,直接输入"updatedb"即可,updatedb指令会去读取/etc/updatedb.conf这个配置文件的设置,然后再去硬盘里面进行搜寻文件名的动作,最后就更新整个数据库文件。
##语法
[root@study ~]# locate [-ir] keyword
##参数
-i : 忽略大小写的差异
-c : 不输出文件名,仅计算找到的文件数量
-l : 仅输出几行的意思,例如输出五行则是-l 5
-S : 输出locate所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等
-r : 后面可接正则表达式的显示方式
范例一:找出系统中所有与passwd相关的文件名,列只列出5个
[root@study ~]# locate -l 5 passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opaaswd
/usr/bin/gpasswd
范例二:列出locate查询所使用的数据文件名与各数据数量
[root@study ~]# locate -S
Database /var/lib/mlocate/mlocate.db:
8,086 directories # 总记录目录数
109,605 files # 总记录文件数
5,190,295 Bytes in file names
2,349,150 Bytes used to store database