定位命令的二进制文件、源码、手册文件的位置
命令语法格式
whereis [options] [-BMS directory… -f] name…
命令描述
命令whereis查找指定命令name的二进制文件、源文件、手册文件。
对于提供的参数name,首先会被剥离了其前导路径名组件,以及形如.ext的任何尾随扩展名(单个扩展名),只保留前缀。由于使用源代码控制而导致的问题也得到了解决。然后尝试在标准Linux位置以及$PATH和$MANPATH指定的位置找到所需的程序。
搜索限制(选项-b,-m,-s)是累积的,并应用于命令行上的后续name模式。任何新的搜索限制都会重置搜索掩码。 例如:
上面的命令搜索“ls”和“tr”二进制文件和手册页,以及仅仅搜索“gcc”手册页。
选项-B、-M、-S重置后续名称模式的搜索路径。 例如:
在所有默认路径中搜索“ls”手册页,但仅在/usr/share/man/man1目录中搜索“cal”。
命令支持的选项及含义
-b
搜索二进制文件。
-m
搜索手册。
-s
搜索源文件。
-B list
参数list是以空格分隔的目录列表,限制whereis搜索二进制文件的位置。
-M list
参数list是以空格分隔的目录列表,限制whereis搜索手册的位置。
-S list
参数list是以空格分隔的目录列表,限制whereis搜索源文件的位置。
-f
在使用任何-B、-M、-S选项时,必须使用该选项。该选项表示目录列表终止,并指出文件名name的开始。
-u
仅显示具有异常条目的命令名称。如果每个显式请求的类型不是只有一个条目,则称该命令是异常的。 因此’whereis -m -u *’要求当前目录中没有文档文件或有多个的文件。
-l
输出whereis正在使用的有效查找路径列表。如果未指定-B、-M、-S,则该选项将输出命令能够在系统上找到的硬编码路径。
–help
显示帮助信息并退出。
–version
显示版本信息并退出。
文件搜索路径
默认情况下,命令whereis尝试从使用通配符模式定义的硬编码路径中查找文件。该命令尝试将$PATH和$MANPATH环境变量的内容用作默认搜索路径。
了解正在使用的路径的最简单方法是使用-l选项。使用-l显示-B、-M、-S选项的效果。
使用示例
要查找/usr/bin中那些未记录在/usr/man中或者在/usr/src中没有源文件的所有文件,执行如下命令:
# whereis -u -ms -M /usr/man/man1 -S /usr/src -f *
如上命令。
相关环境变量
WHEREIS_DEBUG=all
启动调试输出。
参考文献
- man 1 whereis, Version whereis from util-linux 2.32
更新日志
- 08/05/2018 创建文章