是否可以将单个可执行文件而不是整个目录添加到我的 $PATH 中?

是否可以将单个可执行文件而不是整个目录添加到我的 $PATH 中?

bin我在 OSX 中安装了 XAMPP,默认情况下它将自己的目录(充满各种实用程序)的路径添加到我的$PATH变量中:

# Add path to XAMPP PHP version
export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin
export PATH="$XAMPP_PHP:$PATH"

不幸的是,它的实用程序之一称为HEAD,这要归功于 OSX 不区分大小写的文件系统,与 Unixhead命令冲突。 XAMPPHEAD完全无关head(我认为它发出 HTTP HEAD 请求)。

当然,我想同时使用head和XAMPP,所以我简单地改变了路径变量顺序:

export PATH="$PATH:$XAMPP_PHP"

这让我可以使用head,但现在 XAMPP 的 PHP 版本(例如 5.5)与 OSX 附带的预安装 PHP 版本(5.3)之间存在冲突。由于通向 5.3 的路径首先出现,因此它最终会优先。

我的黑客解决方案的计划是预先添加完整的文件路径+名称只是 XAMPP 的 PHP 版本,然后在 后面附加路径的其余部分$PATH

export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP"

这似乎不起作用。当我重新启动 bash 并检查 时php -v,它仍然是 PHP 5.3 - 内置版本。甚至可以添加特定的文件路径吗$PATH

答案1

假设它echo "$PATH"显示/usr/local/bin在您的路径中,并且这是您的个人笔记本电脑:

创建一个/usr/local/bin指向您想要的可执行文件的符号链接。

ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php

如果它是共享计算机并且您不想影响其他用户,我建议在~/.bash_profile.我自己也有一个:

$ grep PATH ~/.bash_profile 
export PATH="$PATH:$HOME/.bin"

然后我可以放入自定义符号链接、脚本等~/.bin,它们将按预期运行(不会覆盖路径中较早存在的系统命令)。

我将 放在.开头,.bin这样在 Finder 中浏览时就不必看到该目录。

相关内容