locate命令出现的错误:cannot open ‘/var/lib/mlocate/mlocate.db’

在使用 locate 命令查找文件时,出现:

locate: can not open `/var/lib/mlocate/mlocate.db': 没有找到指定数据库文件

使用 #updatedb,即可以解决问题。(然后再locate)

locate指令和 find找寻文件的功能类似,但 locate是透过 update程序将硬盘中的所有文件和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达 update强迫系统立即修改索引数据库。不过第一次在执行 update后再使用 locate寻找文件常会失败,此时就要执行 slocate -u该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由locate到此数据库寻找所要找的资料。

然后执行这个命令的时候问题来了,它给出的结果是:

# updatedb 
updatedb: src/updatedb.c:595:scan_cwd: 断言“name_size > 1”失败。

网上搜索此问题,只有问的,没有回答的,因此只好自己解决。

使用updatedb的"-v"选项,发现是“/sys/module/nousb/parameters/目录里的一个怪异文件导致updatedb退出,这个怪异文件在列表里如下所示:
ls /sys/module/nousb/parameters/ -lah
总计 0
drwxr-xr-x 2 root root 0 2008-04-24
drwxr-xr-x 2 root root 0 2008-04-24 .
drwxr-xr-x 3 root root 0 2008-04-24 ..

就是第一个文件,什么也没显示的。也没办法删除,重启检测文件系统也没有错误,晕。

最后看了看updatedb的文档,修改了一下它的配置文件,修改updatedb.conf,把包含这个文件的目录放到PRUNEPATHS里,不让updatedab扫描这个目录,然后重新执行updatedb这个命令,顺利完成,至此问题解决。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值