为什么是`哪个` 没有选择别名?

为什么是`哪个` 没有选择别名?

我在 OSX 上,如果我python --version在 bash shell 中运行,我会得到以下信息:

$ python --version
Python 3.7.3

但该which python命令似乎指向 2.7 版本。

$ which python
/usr/local/bin/python ls -al /usr/local/bin/python
lrwxr-xr-x  1 me  admin  36 11 Apr 22:28 /usr/local/bin/python -> ../Cellar/python@2/2.7.16/bin/python

我想这是因为我已经这样做了alias python=python3:但是为什么which python没有拾取别名呢?

答案1

GNU which - 是一个实用程序,用于查找在 shell 提示符下输入时执行的可执行文件(或别名或 shell 函数)。

从which(1)手册页窃取:

使用此实用程序的推荐方法是添加别名 (C shell) 或 shell 函数 (Bourne shell),如下which所示:

which () {
  (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
export -f which

将其放入您的~/.bashrcshell 或您使用的任何 shell 中以永久启用此功能。

相关内容