定位一个命令
命令语法格式
which [-a] filename …
命令描述
命令which返回参数filename在当前环境中的执行文件(或链接)的路径名,参数filename在严格POSIX兼容的Shell中作为命令给出。
它通过搜索环境变量PATH来寻找匹配参数filename的可执行文件。它不会规范的路径名。
命令支持的选项及含义
-a
打印每个参数的所有匹配的路径名。默认情况下,只会返回第一个匹配的路径。使用该选项后则会返回所有匹配路径名。
注意事项
命令which的实现众多,本手册所说的which只是debianutils包中的which。
退出状态
0 找到了所有的命令,并且可执行。
1 一个或多个命令未找到或者不可执行。
2 指定了无效的选项。
使用示例
如下示例,查找mkdir命令的位置:
# which mkdir
/bin/mkdir
/bin/mkdir
输出/bin/mkdir表示当你执行mkdir时,执行的是/bin下的mkdir命令。但是这不是绝对的,看下面的示例:
# which ls
/bin/ls
/bin/ls
但,当在shell里执行ls时,实际上执行的是ls -a -CF –color=auto,因为我们之前定义了alias ls=’ls -a -CF –color=auto’。
命令which通常可以用于判断系统里是否有某个命令,并获取它的绝对路径。可以用type(shell的内建命令)命令来判断当前执行的实际命令。
参考文献
- BLFS/Which-2.21 and Alternatives
- GNU/which
- man 1 whcih, version debianutils 4.8.4
更新日志
- 08/05/2018 创建文章