「go version」コマンドがエラーで失敗する理由は何ですか? そのようなファイルまたはディレクトリはありません

「go version」コマンドがエラーで失敗する理由は何ですか? そのようなファイルまたはディレクトリはありません

以下は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
~$
~$

私は rm -rf /usr/local/go、バイナリをrm /usr/local/bin/goインストールする新しいバージョンのGo v1.16をインストールする前に、go/usr/local/go/bin

コマンドを機能させるにはどうすればいいですかgo version?

答え1

質問に投稿したスニペットには次のように書かれています:

~$ which go
/usr/local/go/bin/go

whichgoバイナリが/usr/local/go/binディレクトリにあることを示します(「which」を使わないのはなぜですか? では何を使うべきでしょうか?) ですが、Bash は /usr/local/bin ディレクトリから実行しようとします。

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

これは、goバイナリを移動または削除する前にバイナリが存在していた場所である可能性があります。このような状況では、次を実行するとhash -r問題が解決する可能性がありますhelp hash

-r 記憶した場所をすべて忘れる

関連情報