导航菜单

Linux命令大全-locate命令

陆兴东 2026-04-03 14 浏览 Linux命令

一、简介

locate命令用于查找符合条件的文件,为什么这么说呢,是因为它会去相应的数据库内查找,找到数据库内符合条件的文件,一般情况下我们使用locate时,只需要输入locate filename即可快速查到指定的文件。

也有可能在使用locate命令时,提示该命令不存在,此时需要先安装该命令。如果不知道要安装哪个文件才能生成该命令,可以使用下方法进行查看和安装。

[root@Milvus iso]# yum provides locate
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
CentOS7.6                                                                                                                           | 3.6 kB  00:00:00     CentOS7.6/filelists_db                                                                                                              | 3.2 MB  00:00:00     mlocate-0.26-8.el7.x86_64 : An utility for finding files by name源    :CentOS7.6匹配来源:文件名    :/usr/bin/locate
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
源    :@anaconda
匹配来源:
文件名    :/usr/bin/locate

在使用以上命令查看时,需要提前配置好yum源。再使用yum install命令安装对应的位数文件即可。

二、语法

语法:locate [选项] 文件

参数说明:

-b, --basename -- 仅匹配路径名的基本名称

-c, --count -- 只输出找到的数量

-d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db

-e, --existing -- 仅打印当前现有文件的条目

-l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目

-h, --help -- 显示帮助

-i, --ignore-case -- 忽略大小写

-m, --mmap -- 被忽略,为了向后兼容

-P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接

-0, --null -- 在输出上带有NUL的单独条目

-S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息

-q -- 安静模式,不会显示任何错误讯息。

-r, --regexp REGEXP -- 使用基本正则表达式

-s, --stdio -- 被忽略,为了向后兼容

-V, --version -- 显示版本信息

三、实战

1、查看符合条件的一个命令

[root@Milvus iso]# locate passwd
/etc/passwd/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/iwen/anaconda3/bin/kpasswd
/iwen/anaconda3/mysql-test/suite/perfschema/r/hostcache_ipv4_passwd.result
================此处省略部分内容================

此时会找到很多与passwd有关的文件,如果只想显示几行,可以使用以下命令进行查找。

2、查看文件时限制返回条数

[root@Milvus iso]# locate -l 3 passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd

3、查看一个目录下以sh开头的文件

[root@Milvus iso]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

4、只统计数量,不输出查找结果

[root@Milvus iso]# locate -c /etc
4868

5、忽略大小写查询

[root@Milvus iso]# locate -i PASSWD
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd

find、whereis和locate都是查找对应的文件,它们3个区别如下:

特性

find

whereis

locate

搜索目标

所有文件

命令相关文件

所有文件

原理

实时遍历

预定义目录

文件数据库

实时性

实时

实时

非实时

速度

较慢

极快

最快

功能

强大且复杂

简单

中行

使用场景

精确条件搜索

查找命令所有组件

快速搜索文件

总之一句话:简单查找命令用whereis,快速查文件用locate,精确复杂搜索用find。