哪个不显示实际运行的可执行文件的位置

发布于 2024-10-10 15:51:25 字数 488 浏览 6 评论 0原文

我的系统上有一个 SVN 版本,位于 /usr/bin/svn 中。这太旧了,无法与某些存储库一起使用,因此我在 /home/user/built/bin/svn 中编译了一个较新的版本,该版本工作正常。我将其添加到我的路径中,因此应该首先运行它。

打字

which svn

产生

/home/user/built/bin/svn

但打字

svn --version

显示我们仍然使用旧版本。如果我运行

/home/user/built/bin/svn --version

,则会显示正确的版本。

由于自定义版本位于我的 $PATH 中的第一个,并且它首先列出它,为什么当我运行 svn 时会调用旧版本?我想哪个使用你的 $PATH 以与 shell 相同的方式查找可执行文件?

I have a version of SVN on my system in /usr/bin/svn. This is too old to use with some repositories so I compiled a newer version in /home/user/built/bin/svn which works fine. I added this to my PATH so it should be run first.

Typing

which svn

produces

/home/user/built/bin/svn

however typing

svn --version

reveals that it us using the old version still. if I run

/home/user/built/bin/svn --version

then the correct version is displayed.

Since the custom version is first in my $PATH, and which lists it first why is the older version being invoked when I run svn? I thought which used your $PATH to find executables in the same fashion as the shell?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜`诱少女 2024-10-17 15:51:25

用于

type svn

弄清楚 (a) 它是什么,(b) 它在哪里或其定义是什么。还要检查 PATH 是否确实包含您认为的内容

echo $PATH

Use

type svn

to figure out (a) what it is, (b) where it is or what its definition is. Also check that PATH really contains what you think it does

echo $PATH
天邊彩虹 2024-10-17 15:51:25

类型给出:

type svn
svn is hashed (/usr/bin/svn)

运行

hash -r 

现在已经解决了问题!

归功于OP

Type gives:

type svn
svn is hashed (/usr/bin/svn)

Running

hash -r 

has now fixed the problem!

Credit to the OP

说谎友 2024-10-17 15:51:25

你确定你的路径中的其他地方没有到 svn 的符号链接吗?

You sure you don't have a symbolic link to svn somewhere else in your path?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文