suse10中, 新安装了findutils-locate-4.2.27-14.15.i586.rpm, locate命令在这个包中,但是安装完以后执行
# locate httpd.conf
locate: /var/lib/locatedb: No such file or directory #报错
解决方法是用root权限执行
# updatedb
原因是: locate命令查找时依赖于/var/lib/locatedb数据库文件, 使用时需产生并及时更新locatedb数据库。
locate指令和 find找寻文件的功能类似,但 locate是通过updatedb程序将硬盘中的所有文件和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达updatedb强迫系统立即修改索引数据库。
locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
阅读(1273) | 评论(1) | 转发(0) |