Linux 中的 locate 命令用来查找文件或目录。 locate 命令要比 find -name 快得多,原因在于它不搜索具体目录,而是搜索一个数据库 /var/lib/mlocate/mlocate.db。
Linux locate 命令使用的数据库中含有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次。
因此,我们在用 whereis 和 locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。整个 locate 工作其实是由四部分组成的:
组成 | 描述 |
---|---|
/usr/bin/updatedb | 主要用来更新数据库,通过 crontab 自动完成的。 |
/usr/bin/locate | 查询文件位置 |
/etc/updatedb.conf | updatedb 的配置文件 |
/var/lib/mlocate/mlocate.db | 存放文件信息的文件 |
查找文件或目录。
locate [OPTION]... [PATTERN]...
参数
参数 描述 -b, --basename match only the base name of path names。 -c, --count 只输出找到的数量。 -d, --database DBPATH 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db。 -e, --existing only print entries for currently existing files。 -L, --follow follow trailing symbolic links when checking file existence (default)。 -i 忽略大小写。 Linux locate命令常用实例
实例
实例 描述 locate file 查找文件 file locate -i file 忽略大小写查找文件 file locate查找文件
语法
locate file
案例
我们使用 locate 命令,查找 etc 目录下 my 开始的文件,具体命令如下:
locate /etc/my
运行后,终端输出如下:
我们看到,我们使用了 locate 命令,查找了 etc 目录下所有以 my 开始的文件。
locate查找文件
语法
locate file
案例
我们使用 locate 命令,查找 Linux 的安装文件,具体命令如下:
locate install.log
运行后,终端输出如下:
我们看到,我们使用了 locate 命令,查找了 Linux 的安装文件。
新增文件无法locate
语法
updatedb locate file
案例
我们首先,使用 touch 命令,新建一个 haicoder.txt 文件,具体命令如下:
touch haicoder.txt
现在,我们使用 locate 命令,查找刚创建的文件,具体命令如下: