欢迎各位兄弟 发布技术文章
这里的技术是共享的
标签: |
分类: Linux学习 |
linux下使用locate命令快速查找文件:
先来看一下updatedb命令:
[root@localhost
/usr/bin/updatedb
[root@localhost
updatedb(8)
NAME
DESCRIPTION
FILES
[root@localhost
/etc/cron.daily/mlocate.cron
[root@localhost
通过man page可以看到updatedb是一个管理工具,它用来更新索引数据库mlocate.db,所以普通用户无法使用updatedb命令。
[huage@localhost
updatedb:
[huage@localhost
Password:
[root@localhost
[root@localhost
/home/huage
[root@localhost
Desktop
[root@localhost
[root@localhost
Desktop
Documents
[root@localhost
因为sina-huage文件是刚才才建立的,而mlocate数据库一天更新一次,所以索引数据库中自然没有建立刚才所建立的文件的索引,因此我们需要用updatedb命令进行即时更新。
[root@localhost
[root@localhost
/home/huage/sina-huage
[root@localhost
[root@localhost
Desktop
[root@localhost
/home/huage/sina-huage
locate命令默认情况下,不去检查索引数据库中的文件在查询时是否仍然存在
[root@localhost
Desktop
[root@localhost
[root@localhost
Desktop
locate命令的-e参数就是在输出结果前先确认文件是否仍然存在,只有存在才会将查找结果输出
[root@localhost
Red
Kernel
查看系统的版本
[root@localhost
exit
[huage@localhost
普通用户使用locate命令查找文件时,有些结果是不会输出的,因为某些文件普通用户没有权限访问
[huage@localhost
Password:
[root@localhost
/var/lib/mlocate/mlocate.db
[root@localhost
/usr/share/man/man5/mlocate.db.5.gz
/var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db.eHxit1
从上面可以看出,如果查找文件时,文件的前面加了星号,那最好在末尾也加上吧,不然有些结果可能不会输出
[root@localhost
/usr/share/man/man5/mlocate.db.5.gz
/var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db.eHxit1
[root@localhost
/usr/share/man/man5/mlocate.db.5.gz
/var/lib/mlocate/mlocate.db
从这里可以看出mlocate.db.eHxit1是不存在的
[root@localhost
ls:
-rw-r--r--.
-rw-r-----.
从输出的第一行也可以看到mlocate.db.eHxit1是不存在的,第三行中可以看到一个名为slocate的组
locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron
locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录,可以使用特殊字元(如”*”或”?”等)来指定范本样式,如指定范本为hua*sina,
locate指令和find找寻档案的功能类似,但locate是透过updatedb程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接使用updatedb命令来更新索引数据库。
来自 http://blog.sina.com.cn/s/blog_716844910100r3sf.html