在OSX下设置特定命令的路径

时间:2015-04-08 11:18:20

标签: linux macos shell

我在两个路径中都有 libtool 命令:

/opt/local/libexec/gnubin/libtool

/usr/bin/libtool

当前命令在macport下识别,这是第一个路径。 如果我希望命令 libtool / usr / bin / libtool 运行而不删除macport路径,我该怎么办?

1 个答案:

答案 0 :(得分:0)

PATH在单个命令的上下文中没有意义。它是按优先级顺序排列的目录列表。如果您希望一个目录优先于另一个目录,请将其放在路径的前面。

然而,有一种间接影响决议顺序的方法;创建一个具有高优先级的目录(即将其放在PATH的早期版本中)并使用符号链接填充到首选版本的程序,否则这些程序将无法正确解析。

一个自然的选择是/usr/local/bin,但特别是在OSX上,它(令人尴尬的是恕我直言)的优先级低于开箱即用的/usr/bin。也许只需将它放在你自己的.bash_profile中就可以把它放在第一位。或者为此特定目的创建一个专用目录,并将其放在您的路径中。

当然,在您的个人Bash(或其他shell)配置文件中,您还可以简单地创建一个函数或别名,使PATH完全被绕过。但这通常只对交互式使用有意义。