命令与文件的查找

(整理自《鸟哥的Linux私房菜》书籍)

 

1.脚本文件的查找

通过which命令:这个指令是根据『PATH』这个环境变量所规范的路径,去搜寻『执行档』的档名, 所以,重点是找出『执行档』而已。且 which 后面接的是『完整档名』。若加上 -a 选项,则可以列出所有的可以找到的同名执行文件,而非仅显示第一个而已。

 

2.文件的查找

(1)find:功能很强大,但是很慢,并且影响硬盘性能

 (2)whereis:由一些特定的目录中查找文件

whereis 只找几个特定的目录而已。并没有全系统去查询之故。所以说,whereis 主要是针对 /bin /sbin 底下的执行档, 以及 /usr/share/man 底下的 man page 文件,跟几个比较特定的目录来处理而已。所以速度当然快的多。不过,就有某些文件是你找不到的。

(3)locate/updatedb:

这个命令使用上有限制,因为使用 locate 来寻找数据的时候特别的快, 这是因为 locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/』 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据,当然是很快速!

那么有什么限制呢?就是因为他是经由数据库来搜寻的,而数据库的建立默认是在每天执行一次 (每个 distribution 都不同,CentOS 7.x 是每天更新数据库一次),所以当你新建立起来的文件, 却还在数据库更新之前搜寻该文件,那么 locate 会找不到。因为必须要更新数据库。

那能否手动更新数据库?可以。,直接输入『 updatedb 』就可以了。 updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设定,然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件。因为 updatedb 会去搜寻硬盘,所以当你执行 updatedb 时,可能会等待数分钟的时间。

•        updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库文件;

•        locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名。

猜你喜欢

转载自www.cnblogs.com/ericz2j/p/12044564.html