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