那么
whereis
到底是使用什么咚咚呢?为何搜寻的速度会比
find
快这么多?
其实那也没有什么,
只是因为
whereis
只找几个特定的目录而已~并没有全系统去查询之故。所以说,
whereis
主要是针
/bin /sbin
底下的执行档,
以及
/usr/share/man
底下的
man page
文件,跟几个比½特定的目录来
处理而已。所以速度当然快的多!不过,就有某些文件是你找不到的啦!
想要知道
whereis
到底查
了多少目录?可以使用
whereis -l
来确认一下即可!
.
locate / updatedb
[root@study ~]#
locate [
-
ir] keyword
选项
参数
-
i
:忽略大小
的差异;
-
c
:不
名,
½计
算找到的
文件
-
l
½输
出几行的意思,例如
出五行
-
l 5
-
S
locate
所使用的
文件
的相
信息,包括
该数
库纪录
文件
/
录数
量等
-
r
:后面可½正
表示法的
示方式
范例一:找出系
中所有与
passwd
名,且只列出
5
[root@study ~]#
locate
-
l 5 passwd
/etc/passwd
/etc/passwd
-
/etc/pam.d/passwd
/etc/security/opasswd
/usr/bin/gpasswd
范例二:列出
locate
所使用的
文件
之文件名与各
[root@study ~]#
locate
-
S
Database /var/lib/mlocate/mlocate.db:
8,086 directories
#
总纪录
录数
109,605 files
#
总纪录
文件
5,190,295 bytes in file names
2,349,150 bytes used to store database
这个
locate
的使用更简单,直½在后面输入『文件的部分名称』后,就能够得到½果。
举上面的例
子来说,我输入
locate passwd
,那么在完整文件名
(
包含路径名称
)
当中,只要有
passwd
在其中,
就会被显示出来的!这也是个很方便好用的指令,如果你忘记某个文件的完整档名时~~
但是,这个东西还是有使用上的限制呦!为什么呢?你会发现使用
locate
来寻找数据的时候特别的
快,
这是因为
locate
寻找的数据是由『
已½立的数据库
/var/lib/mlocate/
里面的数据所搜寻到的,
所以不用直½在去硬盘当中存取数据,呵呵!当然是很快速啰!
那么有什么限制呢?就是因为他是经由数据库来搜寻的,而数据库的½立默认是在每天执行一次
(
distribution
都不同,
CentOS 7.x
是每天更新数据库一次!
)
,所以当你新½立起来的文件,
却还
在数据库更新之前搜寻该文件,那么
locate
会告诉你『找不到!』呵呵!因为必须要更新数据库呀!