红联首页 凝聚Linux人的力量
菜鸟过关 | 精华文档 | 同城人(交友) | 我与Linux的故事 | Linux新闻 | Linux视频 | Linux人才 | 软件下载 | 大学校园 | English
发新话题
打印

locate命令出错!!!

locate命令出错!!!

我用虚拟机安的红旗linux6.0但当用locate命令时出现:
locate: can not open `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
我觉的可能是因为没有更新数据库的原因,但当我用updatedb命令更新数据库时(我是以root用户登陆的)出现:
updatedb: src/updatedb.c:595:scan_cwd: 断言“name_size > 1”失败。
小弟初学请高手指点一下?

TOP

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

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

使用 #updatedb,即可以解决问题。                                    

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

TOP

感谢你的回答,不过就是我在用updatedb时就已出错了!    updatedb: src/updatedb.c:595:scan_cwd: 断言“name_size > 1”失败。

有没有其他解决办法???

TOP

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的文档,修改了一下它的配置文件,修改/etc/updatedb.conf,把目录"/sys/module/nousb/parameters"(不含引号)放到PRUNEPATHS里,不让updatedab扫描这个目录,然后重新执行updatedb这个命令,顺利完成,至此问题解决。

[ 本帖最后由 wuyuejingdian 于 2008-12-3 08:13 编辑 ]

TOP

发新话题