【发布时间】:2016-03-02 04:03:36
【问题描述】:
我有两个同名的可执行文件,出于演示目的,假设可执行文件的名称是“someexecutable.exe”。现在我想在终端中执行“someexecutable.exe”时运行新版本,但它正在运行旧版本。我已将新版本的路径添加到 .profile 中,但我不知道旧可执行文件的路径设置在哪个 PATH 文件中。
如何设置 PATH 优先级,以便当存在两个同名的可执行文件时,终端运行您想要的那个。
【问题讨论】:
我有两个同名的可执行文件,出于演示目的,假设可执行文件的名称是“someexecutable.exe”。现在我想在终端中执行“someexecutable.exe”时运行新版本,但它正在运行旧版本。我已将新版本的路径添加到 .profile 中,但我不知道旧可执行文件的路径设置在哪个 PATH 文件中。
如何设置 PATH 优先级,以便当存在两个同名的可执行文件时,终端运行您想要的那个。
【问题讨论】:
$PATH 变量按定义的顺序进行搜索。所以例如你有 path1/someprogaram.exe 后跟 path2/someprogram.exe 然后 path1 将被执行。
现在,通过添加 .profile 进行更改后,请确保使用
加载配置文件source ~/.bashrc
或者生成一个新的shell。
【讨论】:
您不能使用完整路径运行您的程序吗?喜欢
/foo/bar/yourapplication.exe
那么就不会有混乱了。
您还可以为 Bash 终端上的单个命令自定义 PATH
PATH=/foo/bar/:$PATH yourapplication.exe
如果您通过不知道完整路径的包装器运行 yourapplication.exe,这很有用。
【讨论】: