Bash:哪个<app>返回的位置与预期不同</app>

时间:2014-12-14 02:52:54

标签: macos bash which

任何人都可以向我解释为什么会发生以下情况吗?

[$] pip
-bash: /usr/local/bin/pip: No such file or directory
[$] which pip
/bin/pip

1 个答案:

答案 0 :(得分:5)

缓存应用程序查找。重置pip条目:

hash pip

引用man bash

  

如果名称既不是shell函数也不是内置函数,并且不包含斜杠,则bash会在PATH的每个元素中搜索包含该名称的可执行文件的目录。 Bash使用哈希表来记住可执行文件的完整路径名(请参阅下面的SHELL BUILTIN命令下的哈希)。只有在哈希表中找不到该命令时,才会执行PATH中目录的完整搜索。

以及hash在同一文档中的条目:

  

hash [-lr] [-p filename] [-dt] [name]
  对于每个名称,命令的完整文件名是通过搜索$ PATH中的目录并记住来确定的。

无论散列条目如何,

which始终会搜索您的路径。