which
回想一下whereis命令,以及用-b选项只查询KWord的二进制文件信息时发生的情况。
$ whereis -b kword
kword: /usr/bin/kword /usr/bin/X11/kword
在两个位置都有KWord的可执行文件。但是哪一个文件会先运行呢?运行which命令就可以得到答案。
$ which kword
/usr/bin/kword
只要输入命令的名称,which命令就能告诉你这个命令的哪个版本将会运行。换句话说,如果你输入kword,然后按Enter键,shell将会执行/usr/bin目录下找到的kword程序。如果想运行/usr/bin/X11目录下的版本,必须用cd命令切换目录,然后输入./kword,或者是使用那个命令的绝对路径,输入/usr/bin/X11/kword。
which命令也是一种快速判断系统中是否存在特定命令的方法。如果在你的系统中有相应的命令,而且也在PATH中,which命令将告诉你在哪可以找到这个命令。如果命令不存在,将不在命令行中返回任何信息。
$ which arglebargle
$
如果要查找命令的所有位置(就像使用whereis –b一样),则可以使用-a(表示all)选项。
$ which -a kword
/usr/bin/kword
/usr/bin/X11/kword
?