Linux/Unix whereis命令示例

时间:2020-01-09 10:46:07  来源:igfitidea点击:

如何找到和找到给定命令的二进制文件,源文件和手册页文件?
您需要使用whereis命令来查找指定命令或者文件的源,二进制和手册部分。
二进制文件不过是诸如ls之类的命令或者诸如Gimp之类的程序的可执行文件。
使用此命令找出:

  • 二进制文件的位置。
  • 以及源代码的位置。
  • 最后,手册页的位置。

语法

基本语法如下:

whereis command
whereis program
whereis [options] program
whereis -BMS directory  -f command

whereis命令示例

要查找date命令的可执行文件,源代码和手册页的位置,请执行:

$ whereis date

如何仅搜索二进制文件?

尝试按以下方式传递-b选项:

$ whereis -b date

如何仅搜索手册部分文件?

使用-m选项,如下所示:

$ whereis -m date

如何仅搜索源代码文件?

通过-s选项,如下所示:

$ whereis -s date

如何仅搜索不寻常的条目?

如果文件没有每种请求类型的一个条目,则该文件被认为是不寻常的。
因此,以下示例在当前目录中请求没有文档的那些文件:

$ whereis -m -u *

如何将对二进制文件的搜索限制为特定目录?

您可以传递以下选项来限制限制whereis搜索文件的位置:

  • -B/path/to/dir:限制whereis搜索二进制文件的位置。
  • -M/path/to/dir:限制其中搜索手册部分的地方。
  • -S/path/to/dir:限制whereis搜索源的位置。

使用-B,-M或者-S选项中的任何一个时,都必须传递-f选项。

-f选项终止最后一个目录列表,并指示文件名的开始。
在此示例中,仅对ls和gcc命令限制在/bin /目录中搜索二进制文件:

$ whereis -B /bin -f ls gcc

输出示例:

ls: /bin/ls /usr/share/man/man1/ls.1.gz
gcc:

因为gcc命令位于/usr/bin /目录中,所以没有输出。
要查找/sbin /目录中所有未在/usr/man/man8目录中记录或者在/root/src目录中没有源文件的文件,请执行:

# cd /sbin
# whereis -u -M /usr/man/man8/ -S /root/src/ -f *

whereis命令选项

在whereis(1)命令手册页中:

选项含义
-f定义搜索范围。
-b仅搜索二进制文件。
-B定义二进制查找路径。
-m仅搜索手动路径。
-M定义查找路径。
-s仅搜索源路径。
-S定义源查找路径。
-u从不寻常的实体中搜索。
-V输出版本信息并退出。
-h显示此帮助并退出。