whereis语法
whereis [ -s ] [ -b ] [ -m ] [ -u ] [ { { -S | -B | -M } Directory ... }... -f ] 要找的文件名.
补充说明:whereis指令会在特定目录中查找符合条件的文件。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。
描述
whereis 命令找到指定文件的源、二进制文件和手册等各部分。提供的名称首先去除前导路径名组件和任何(单个的)格式为 .ext 的尾随扩展名(例如,.c)。由于使用源代码控制系统(请参阅 SCCS)而引起的 s. 前缀也会被处理。然后命令试图从一个标准位置列表中查找期望的程序。
如果输入错误的选项,则返回一条用法消息。在其它情况下,不提供诊断。
标志
如果给出 -b、-s、-m 或 -u 标志中的任一个,则 whereis 命令仅分别搜索二进制文件、源、手册或不寻常部分(或其中的两个)。
-b 搜索文件的二进制部分。
-m 搜索文件的手册部分。
-s 搜索文件的源部分。
-u 没有说明文档的文件
-B、-M 和 -S 标志可以用于更改或限制 whereis 命令搜索的位置。由于该程序为了运行得更快而使用了 chdir 子例程,所以用 -M、-S 和 -B 标志目录列表给出的路径名必须是完整的;例如,它们必须以一个 / (斜杠)开始。
-B 与 -b 一样,但是添加了要搜索的目录。更改或限制 whereis 命令搜索二进制文件的位置。
-M 与 -m 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索手册部分的位置。
-S 与 -s 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索源的位置。
-f 终止最后的 -M、-S 或 -B 目录列表并发文件名起始位置信号。
例子
查找linux中的某个程序可以用whereis 命令来搜索,
比如查找my.cnf
在命令行输入
whereis my.cnf
就会显示这个文件所在的目录了
实例2:将和**文件相关的文件都查找出来
命令:
whereis svn
输出:
[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安装找出了很多相关文件
实例3:只将二进制文件 查找出来
命令:
whereis -b 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:
[root@localhost ~]#
说明:
whereis -m svn 查出说明文档路径,whereis -s svn 找source源文件。
补充:which 与whereis 命令区别
功能说明:查找文件。
语 法:which [文件...]
补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参 数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
1、which
语法:
[root@redhat ~]# which 可执行文件名称
例如:
[root@redhat ~]# which passwd
/usr/bin/passwd
which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件
2、whereis
语法:
[root@redhat ~]# whereis [-bmsu] 文件或者目录名称
参数说 明:
-b : 只找二进制文件
-m: 只找在说明文件manual路径下的文件
-s : 只找source源文件
-u : 没有说明文档的文件
例如:
[root@redhat ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
将和passwd文件相关的文件都查找出来
[root@redhat ~]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
只将二进制文件 查找出来
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新