Linux whereis,which

whereis

简介

whereis 命令可以帮助用户寻找某一命令的二进制文件,源码以及帮助页面。

语法格式

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

Q&A

Q1:如何查找二进制文件所在的位置?

比如,用whereis命令查找whereis自己这个二进制可执行程序在哪里,具体操作:

ydqun@VM-0-9-ubuntu b % whereis whereis                                                            [130]
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz

需要注意的是,输出的第一个路径才是你想要的结果,使用whereis命令,会默认也显示帮助页面和源码所在的路径,所以输出中第二个路径是帮助页面文件的所在位置,这里没有找到源码。

Q2:如何只搜索二进制文件、帮助页面或源码,而不是默认找出三种?

如果你只想搜索二进制文件,可以使用-b命令选项,例如:

ydqun@VM-0-9-ubuntu b % whereis -b whereis                                                           [0]
whereis: /usr/bin/whereis

类似的,-m对应查找帮助页面,-s对应查找源码。

Q3:如何限制whereis的搜索目录(搜索范围)?

如果你只想在/usr/bin目录下寻找二进制文件,你可以用-B这一选项来实现

root@icg:/home/yudongqun/coverity_new/icg_server# whereis -B  /usr/bin -f man
man: /usr/share/man/man7/man.7.gz /usr/share/man/man1/man.1.gz /usr/bin/man

注意:使用这种方式时可以给出多个要搜索的目录,使用-f这一选项是用来明确分隔目录列表和要搜索的目标文件名的,类似的,如果你想要在规定目录下查找帮助页面,则用-M;查找源码,则用-S。

Q4.如何查看whereis的搜索路径?

选项-l可以列出whereis默认的查找路径(查找范围)。

ydqun@VM-0-9-ubuntu b % whereis -l                                                                   [0]
bin: /usr/bin
bin: /usr/sbin
bin: /lib/x86_64-linux-gnu
bin: /usr/lib/x86_64-linux-gnu
bin: /usr/lib
bin: /bin
bin: /sbin
bin: /etc
bin: /lib
bin: /lib64
bin: /usr/games
bin: /usr/local/bin
bin: /usr/local/sbin
bin: /usr/local/etc
bin: /usr/local/lib
bin: /usr/local/games
bin: /usr/include
bin: /usr/local
bin: /usr/share
man: /usr/share/man/pl
man: /usr/share/man/da
man: /usr/share/man/zh_CN
man: /usr/share/man/es
man: /usr/share/man/man4
man: /usr/share/man/pt_BR
man: /usr/share/man/sl
man: /usr/share/man/fi
man: /usr/share/man/it
man: /usr/share/man/man8
man: /usr/share/man/sv
man: /usr/share/man/man1
man: /usr/share/man/man9
man: /usr/share/man/cs
man: /usr/share/man/ja
man: /usr/share/man/nl
man: /usr/share/man/man7
man: /usr/share/man/hu
man: /usr/share/man/sr
man: /usr/share/man/man3
man: /usr/share/man/pt
man: /usr/share/man/tr
man: /usr/share/man/man2
man: /usr/share/man/de
man: /usr/share/man/ru
man: /usr/share/man/id
man: /usr/share/man/man5
man: /usr/share/man/zh_TW
man: /usr/share/man/man6
man: /usr/share/man/fr
man: /usr/share/man/ko
man: /usr/share/info
src: /usr/src/linux-headers-4.15.0-88
src: /usr/src/linux-headers-4.15.0-88-generic
src: /usr/src/linux-headers-4.15.0-130-generic
src: /usr/src/linux-headers-4.15.0-130

这里,也就是说,若果你没有指定搜索目录,whereis会默认从这些目录中去搜索目标文件,如果在这些目录中没有目标文件,则会提示搜索不到。

which

简介

Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

语法

which [-a] filename

例子

which使用起来非常简单。

ydqun@VM-0-9-ubuntu b % which mkdir                                                                  [0]
/bin/mkdir                                                                             
ydqun@VM-0-9-ubuntu b % which rmdir du df                                                            [0]
/bin/rmdir
/usr/bin/du
/bin/df
posted @ 2021-01-20 14:23  ydqun  阅读(103)  评论(0编辑  收藏  举报