Bash使用内部哈希表来优化$PATH
查找。当您python
在您的较早位置安装了一个与现有程序同名的新程序时$PATH
,Bash对此一无所知,并继续使用旧程序。该which
可执行文件做了全面$PATH
的搜索和打印出想要的结果。
要解决此问题,请运行命令hash -d python
。这python
将从Bash的哈希表中删除,并$PATH
在下次调用它时强制它进行完全搜索。或者,您也可以运行hash -r
以完全清除哈希表。
该type
内建将告诉你如何在给定命令将被解释。如果它说命令被散列,则意味着Bash将跳过$PATH
对可执行文件的搜索。