gpt4 book ai didi

macos - 为什么或如何是我的道路没有受到 MacOSX 的尊重?

转载 作者:行者123 更新时间:2023-12-04 06:10:48 26 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




二进制文件怎么可能“默认”执行——即。在我的路径中找到的第一个,由 which 返回命令,实际上不是默认情况下实际执行的二进制文件吗? (我在 2008 款 MacBook Pro 上运行 Mac OS X 10.5。)

我刚刚通过运行 brew install git 安装了最新版本的 git

它在我的路径中比旧二进制文件更高或更早的位置安装了新版本。但是,默认情况下不执行新版本。就好像在我安装新的之前 shell 已经缓存了二进制文件的位置 - 但是 which命令每次运行时都会解析路径。

我想了解这里发生了什么,并了解如何在无需注销或重新启动机器的情况下刷新“缓存”。这就是我所看到的:

which git

返回
/usr/local/bin/git

尽管
git --version

返回
git version 1.6.5


/usr/local/bin/git --version

返回
git version 1.7.7

进一步检查,
which -a git

返回
/usr/local/bin/git
/usr/local/git/bin/git
/usr/local/bin/git
/usr/local/git/bin/git
/usr/local/bin/git
/usr/local/git/bin/git

(是的 - 我的路径设置中有一些冗余。)
/usr/local/git/bin/git --version

返回
git version 1.6.5

更新 - 这是 bash 哈希的答案。 (来自: In bash, "which" gives an incorrect path - Python versions)
type git

git is hashed (/usr/local/git/bin/git)

$ hash -d git

$ type git
git is /usr/local/bin/git

$ which git
/usr/local/bin/git

git --version
git version 1.7.7

最佳答案

在给定的 shell 实例中,确实缓存了二进制文件的路径。清除此问题的最简单方法是打开一个新的终端窗口。但是您也可以使用 hash 在现有窗口中清除它。 shell 内置(阅读 help hash 了解详细信息)。

至于为什么which不同意 shell 关于要执行的二进制文件,这是因为 which是一个位于 /usr/bin/which 的程序并解析 PATH独立于 shell 。如果您想确切地查看 shell 所看到的内容,请使用 type而不是 which (并使用 type -a 查看给定命令的所有可能结果)。

关于macos - 为什么或如何是我的道路没有受到 MacOSX 的尊重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com