Linux中whereis命令的使用

Posted by Geuni's Blog on December 28, 2021

whereis是一个用来查找给定命令的二进制文件,源代码文件,man手册文件的命令。

如何使用whereis命令

whereis命令的基本语法如下:

1
whereis [OPTIONS] FILE_NAME...

当不带有任何参数时,whereis将搜索相关命令的二进制文件,源代码及man手册文件。

默认,whereis是在环境变量中定义的路径和目录中搜索命令文件。使用-l选项可以看到whereis命令搜索的目录都有哪些。

1
whereis -l

想要获取有关bash命令的信息,可以使用如下命令:

1
whereis bash

输出:

1
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

输出内容中,/bin/bash是二进制文件的路径,/etc/bash.bashrc是源代码文件, /usr/share/man/man1/bash.1.gz是手册文件的位置。

当搜索的命令不存在时,whereis将只打印命令名称。

which命令一样,可以指定多个参数。

1
whereis netcat uptime

下面是输出内容

1
2
netcat: /bin/netcat /usr/share/man/man1/netcat.1.gz
uptime: /usr/bin/uptime /usr/share/man/man1/uptime.1.gz

要只想搜索命令的二进制文件,可以用-p选项。 例如,要查找ping命令的位置,可使用如下命令:

1
whereis -b ping

输出:

1
ping: /bin/ping

只想查特定命令的二进制文件的位置时,建议使用whichtype命令。

如果只想查看命令的源代码文件时,可使用-s选项。

1
whereis -s command

当源代码文件存在时,将打印出其路径。

使用-m选项时,只会查man文件位置。

1
whereis -m command

想要限制whereis命令要查找的目录时,二进制文件用-B选项,手册文件用-M选项,源代码文件用-S选项。每个选项都是,接收以空格分隔的目录的绝对路径列表。而且目录列表必须以-f选项终止。

1
whereis -b -B /bin -f cp

输出:

1
cp: /bin/cp

-u选项是用来搜索异常条目的,如果一个命令对应的请求类型(二进制文件,源代码,手册)数量不是1个的时候(没有或有多个),被看作为异常条目。

例如,想要搜索/bin目录中没有文档或具有多个文档的所有二进制文件,可执行:

1
2
cd /bin
whereis -m -u *

当通配符(*)在-f选项后面时,表示当前工作目录中(/bin)的所有文件。

以上介绍了用whereis命令查找二进制文件,源代码,手册的方法。