为什么 http 不调用 /usr/bin/http 而是调用 /usr/local/bin/http?

为什么 http 不调用 /usr/bin/http 而是调用 /usr/local/bin/http?

显示我的路径:

echo  $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/go/bin

发出 http 命令:

http  --version
bash: /usr/local/bin/http: No such file or directory

http 位于哪里?

which http
/usr/bin/http

发出带有绝对路径的 http 命令:

/usr/bin/http  --version
0.9.8

为什么不叫而是http叫?/usr/bin/http/usr/local/bin/http

答案1

可能是你的 shell 启动时文件/usr/local/bin/http仍然存在。然后发生了一些事情,文件被删除了,但 shell 却不知道。

你需要做的是通过执行以下命令让 shell 忘记记住的程序位置:

hash -r 

要查看hash命令的完整帮助,你可以执行help hash

相关内容