为什么“go version”命令失败并出现错误?没有这样的文件或目录

ove*_*nge 1 linux bash macintosh

Mac下的环境如下:

~$
~$
~$ echo $0
-bash
~$
~$
~$
~$
~$
~$ cat /etc/paths.d/go
/usr/local/go/bin
~$
~$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/MYUSER/go/bin
~$
~$
~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/MYUSER/go/bin:/usr/local/go/bin
~$
~$ uname -a
Darwin XYXYXYXXYX 19.6.0 Darwin Kernel Version 19.6.0: Mon Apr 12 20:57:45 PDT 2021; root:xnu-6153.141.28.1~1/RELEASE_X86_64 x86_64
~$
~$ which go
/usr/local/go/bin/go
~$
~$
~$
~$ go version
-bash: /usr/local/bin/go: No such file or directory
~$
~$
~$
~$ /usr/local/go/bin/go version
go version go1.16.4 darwin/amd64
~$
~$
Run Code Online (Sandbox Code Playgroud)

我在安装新版本 go v1.16 之前执行了 rm -rf /usr/local/go安装rm /usr/local/bin/go二进制go文件的操作/usr/local/go/bin

如何让go version命令生效?

Ark*_*zyk 7

在您在问题中发布的代码片段中说:

\n
~$ which go\n/usr/local/go/bin/go\n
Run Code Online (Sandbox Code Playgroud)\n

which表示 go 二进制文件驻留在 /usr/local/go/bin 目录\n(另请参阅为什么不使用 \xe2\x80\x9cwhich\xe2\x80\x9d?使用什么\n然后?)\n但 Bash 尝试从它 /usr/local/bin 目录:

\n
~$ go version\n-bash: /usr/local/bin/go: No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n

这可能是go您移动或删除二进制文件之前所驻留的位置。在这种情况下,运行hash -r可能会解决\n问题,来自help hash

\n
\n

-r 忘记所有记住的位置

\n
\n

  • @overexchange 好!如果这解决了您的问题,请考虑[接受答案](https://unix.stackexchange.com/help/someone-answers)。接受答案标志着问题已解决。 (2认同)