3.12 找出将要运行的命令的版本
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