为什么执行的命令不是"which"找到的命令

Why the command executed is not that command found by "which"

~$ which svn
/usr/local/bin/svn
~$ svn --version
-bash: /usr/bin/svn: No such file or directory
~$ 

$路径:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/go/bin:/opt/google/chrome:~/nuts/shes

这通常发生在您删除了曾经存在的命令之后。出于效率原因,bash 不会在您每次 运行 任何命令时都扫描 PATH。相反,它会记住最后一个位置并避免下次查找。

您可以使用

让它忘记所有记住的位置
hash -r

之后,svn --version 应该会找到新的位置。