locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录

Posted 程序员cxuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录相关的知识,希望对你有一定的参考价值。

最近在系统学习 Linux 的时候使用到了 locate 这个命令,这个命令用于搜寻文件,其实这个文件的效果相当于是 find -name,但是 locate 要比 find 命令快得多,因为 locate 是从数据库中查询的,这个数据库含有所有本地文件的信息。

但是我在执行 locate 的时候却发现系统找不到该指令

[root@cxuan ~]# locate
-bash: locate: 未找到命令

我的系统 :CentOS 7.5

安装 locate

我们可以使用 yum -y install mlocate 来安装 locate。

已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Determining fastest mirrors
base                                                                                             | 3.6 kB  00:00:00
docker-ce-stable                                                                                 | 3.5 kB  00:00:00
epel                                                                                             | 4.7 kB  00:00:00
extras                                                                                           | 2.9 kB  00:00:00
mysql-connectors-community                                                                       | 2.6 kB  00:00:00
mysql-tools-community                                                                            | 2.6 kB  00:00:00
mysql57-community                                                                                | 2.6 kB  00:00:00
nodesource                                                                                       | 2.5 kB  00:00:00
updates                                                                                          | 2.9 kB  00:00:00
yarn                                                                                             | 2.9 kB  00:00:00
(1/4): epel/x86_64/updateinfo                                                                    | 1.0 MB  00:00:00
(2/4): epel/x86_64/primary_db                                                                    | 7.0 MB  00:00:00
(3/4): docker-ce-stable/7/x86_64/primary_db                                                      |  95 kB  00:00:00
(4/4): nodesource/x86_64/primary_db                                                              |  34 kB  00:00:01
正在解决依赖关系
--> 正在检查事务
---> 软件包 mlocate.x86_64.0.0.26-8.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================================================
 Package                     架构                       版本                             源                        大小
========================================================================================================================
正在安装:
 mlocate                     x86_64                     0.26-8.el7                       base                     113 k

事务概要
========================================================================================================================
安装  1 软件包

总下载量:113 k
安装大小:379 k
Downloading packages:
mlocate-0.26-8.el7.x86_64.rpm                                                                    | 113 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : mlocate-0.26-8.el7.x86_64                                                                           1/1
  验证中      : mlocate-0.26-8.el7.x86_64                                                                           1/1

已安装:
  mlocate.x86_64 0:0.26-8.el7

完毕!

安装完成后继续使用 locate 命令,发现弹出了提示

locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

问题分析

这是由于 Linux 会自动创建这个 mlocate.db 这个数据库,并且 Linux 会自动更新这个数据库,但是我们刚安装完 locate ,Linux 还并未自动更新,所以我们需要手动更新一下,使用命令 updatedb 即可更新。

更新完成后,我们就能使用 locate 命令了。

[root@cxuan ~]# locate -l 5 passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/usr/bin/gpasswd

关于作者

你好,我是 cxuan,一枚程序员,目前在老家石家庄工作,我坚信着技术改变命运,并且我也是一个践行者,我创办了自己的网站

https://cxuan.vip/

里面有很多干货文章你可以看看,希望对你有帮助。

以上是关于locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录

Linuxlocate: can not stat () `/var/lib/mlocate/mlocate.db‘: No such file or directory

Net :: SFTP :: Session无法运行stat,显然有一个Nil通道

任务 ':app:checkDebugAarMetadata' 执行失败。无法解析 com.google.android.gms:play-services-location:16.+

ubuntu cp: 无法获取”/boot/initrd.img-3.13.0-100-generic” 的文件状态(stat): 没有那个文件或目录

ubuntu cp: 无法获取”/boot/initrd.img-3.13.0-100-generic” 的文件状态(stat): 没有那个文件或目录