Ubuntu

which 是在騙我嗎?

  • August 5, 2011

我通過 git 安裝了apt-get,但發現版本已經過時了,所以我從 source 安裝了 git。最終的結果相當令人費解:

$ git --version
git version 1.7.0.4
$ which git
/usr/local/bin/git
$ /usr/local/bin/git --version
git version 1.7.6

看來那which是在騙我……這似乎不太可能。這裡實際發生了什麼,我怎樣才能得到一個對 git 的裸呼叫來執行正確的版本?

which說的是實話。你的殼在騙你。

git is hashed (/usr/bin/git)

表示您的 shell 已經記憶體了“git”的這個位置,並且正在使用記憶體的路徑,而不是再次搜尋 $PATH。用於hash -r清除記憶體並使 shell 在 $PATH 中搜尋新的 git/usr/local/bin/git

您是否在 shell 中為 git 設置了別名?

$ alias git="/bin/echo This is not the git you are looking for"
$ which git
/usr/bin/git
$ git --version
This is not the git you are looking for --version
$ /usr/bin/git --version
git version 1.7.4.1
$ type git
git is aliased to `/bin/echo This is not the git you are looking for'
$ unalias git
$ type git
git is /usr/bin/git
$ git --version
git version 1.7.4.1

引用自:https://serverfault.com/questions/298171