「whereis(1)」-

  LINUX MANUAL PAGES

定位命令的二进制文件、源码、手册文件的位置

命令语法格式

whereis [options] [-BMS directory… -f] name…

命令描述

命令whereis查找指定命令name的二进制文件、源文件、手册文件。

对于提供的参数name,首先会被剥离了其前导路径名组件,以及形如.ext的任何尾随扩展名(单个扩展名),只保留前缀。由于使用源代码控制而导致的问题也得到了解决。然后尝试在标准Linux位置以及$PATH和$MANPATH指定的位置找到所需的程序。

搜索限制(选项-b,-m,-s)是累积的,并应用于命令行上的后续name模式。任何新的搜索限制都会重置搜索掩码。 例如:

# whereis -bm ls tr -m gcc

上面的命令搜索“ls”和“tr”二进制文件和手册页,以及仅仅搜索“gcc”手册页。

选项-B、-M、-S重置后续名称模式的搜索路径。 例如:

# whereis -m ls -M /usr/share/man/man1 -f cal

在所有默认路径中搜索“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中没有源文件的所有文件,执行如下命令:

# cd /usr/bin


# 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 创建文章