「which(1)」-

定位一个命令

命令语法格式

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表示当你执行mkdir时,执行的是/bin下的mkdir命令。但是这不是绝对的,看下面的示例:

# which ls

/bin/ls

但,当在shell里执行ls时,实际上执行的是ls -a -CF –color=auto,因为我们之前定义了alias ls=’ls -a -CF –color=auto’。

命令which通常可以用于判断系统里是否有某个命令,并获取它的绝对路径。可以用type(shell的内建命令)命令来判断当前执行的实际命令。

参考文献

更新日志

  • 08/05/2018 创建文章