which
命令用于定位执行文件的路径。当输入一个命令时,which
会在环境变量 PATH 所指定的路径中搜索每个目录,以查找指定的可执行文件。
which [选项] 命令名
-a
:列出所有的匹配路径,而不仅仅是第一个匹配。-n <数目>
:在输出时,限制每个 PATH 元素的最大字符数。-p <路径>
:添加额外的搜索路径。-i
:忽略大小写。使用 which
命令可以迅速找出某个命令的完整路径,这对于确定正在使用哪个版本的程序非常有用,特别是当系统中安装了多个版本时。此外,which
命令也常被用于脚本中,以确保调用正确的命令路径。
假设我们想知道 ls
命令的位置,可以使用以下命令:
which ls
这会输出 ls
命令的完整路径,比如我这里是 /bin/ls
。如果想查看所有匹配的 ls
命令路径,可以使用 -a
选项:
查找 python命令的位置
假设想知道正在使用的 Python 命令的确切位置,可以使用以下命令:
which python
同理,如果要查找 gcc
编译器的位置:
which gcc
这会显示 gcc
的安装路径,如 /usr/bin/gcc
。
限制输出路径的长度
如果您想限制输出路径的长度,可以使用 -n
选项。例如,限制路径长度为 10 个字符:
which -n 10 python
有的参数并不是在所有的 shell 中都支持,例如,我在 Centos 中使用-n 选项则会提示选项不合法。
在指定的附加路径中搜索
使用 -p
选项可以在除了标准 PATH 变量外的其他路径中搜索。例如,在 /opt/bin
路径中查找 node
命令:
which -p /opt/bin node
忽略大小写查找命令
如果不确定命令的确切大小写,可以使用 -i
选项来忽略大小写。例如,查找名为 Echo
或 echo
的命令:
which -i echo