我已在以下位置安装了旧版本的 Git:
/usr/bin/
我最近下载了一个较新的版本来:
/usr/local/bin
当我输入:
which git
我得到了旧版本的位置。我相信这只是因为 /usr/bin/ 在我的 $PATH 变量中出现在 /usr/local/bin 之前,因此首先“找到”了旧版本的 git。
为了测试这一点,我将旧版本的 git 重命名为“git_old”。现在当我输入:
which git
正如预期的那样,我获得了较新版本的位置。但是当我输入:
git --version
我收到以下错误:
-bash: /usr/bin/git: No such file or directory
我只是想知道为什么我的计算机会回到旧位置寻找 Git?
答案1
Bash 缓存可执行文件的完整路径,这样它就不必$PATH
每次都查看。
您可以使用以下命令查看缓存中的内容hash
:
deltik@node51 [~]$ hash
hits command
1 /usr/bin/git
可以使用以下方法清除缓存hash -r
:
deltik@node51 [~]$ hash -r
deltik@node51 [~]$ hash
hash: hash table empty
其他资源
- 如何清除 Bash 的可执行文件路径缓存?在 Unix Stack Exchange 上
- hash 命令的用途是什么?在 Unix Stack Exchange 上
- 如何让 bash 自动刷新程序位置的缓存?关于超级用户
- 文档
hash