Linux目录文件操作命令之查找命令(2)

ocate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件

可以通过手动更新数据库来解决这个问题

updatedb

locate命令的选项如下

-d<目录>或--database=<目录>:指定数据库所在的目录;
-u:更新slocate数据库;
--help:显示帮助;
--version:显示版本信息。

通过几个例子熟悉命令

搜索etc目录下所有以sh开头的文件:

locate /etc/sh

搜索用户主目录下,所有以m开头的文件,并且忽略大小写:

locate -i ~/m

whereis  定位路径
whereis(选项)(参数)

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径

选项如下

-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。

和find命令相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高

下面我们来实战这个命令

[root@localhost ~]# whereis tomcat
tomcat:
 
[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

开始的时候我们查找tomcat,因为我没有安装,所以在这里并没有显示

而svn我安装了,所以找到了很多相关的文件

当然我们可以只将二进制文件显示出来

[root@localhost ~]# whereis -b svn
svn: /usr/bin/svn /usr/local/svn
 
[root@localhost ~]# whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
 
[root@localhost ~]# whereis -s svn
svn:

其他选项还是不一一进行演示了,Linux本就是要实战才能真正学会

which 查找命令的绝对路径

which(选项)(参数)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12845.html