Path

是否可以將單個執行檔而不是整個目錄添加到我的 $PATH 中?

  • April 15, 2016

我在 OSX 中安裝了 XAMPP,預設情況下,它會將​​自己的bin目錄(充滿各種實用程序)的路徑添加到我的$PATH變數中:

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

不幸的是,它的一個實用程序被稱為HEAD,由於 OSX 不區分大小寫的文件系統,它與 Unixhead命令衝突。XAMPP與(我認為它發出 HTTP HEAD 請求)HEAD完全無關。head

當然,我想同時使用head和XAMPP,所以我簡單地更改了路徑變數順序:

export PATH="$PATH:$XAMPP_PHP"

這讓我可以使用head,但現在 XAMPP 的 PHP 版本(例如 5.5)和 OSX 附帶的預裝 PHP 版本(5.3)之間存在衝突。由於通向 5.3 的路徑是第一位的,因此它最終佔了上風。

我的 hackish 解決方案計劃是在 XAMPP 的 PHP 版本前面加上完整的文件路徑+名稱,然後在後面附加路徑的其餘部分$PATH

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

這似乎不起作用。當我重新啟動 bash 並檢查php -v時,它仍然在 PHP 5.3 - 內置版本上。甚至可以添加特定的文件路徑$PATH嗎?

假設這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其中,它們將按預期執行(不會覆蓋我的 PATH 中早先存在的系統命令)。

我將 放在.開頭,.bin因此在 Finder 中瀏覽時不必查看目錄。

引用自:https://unix.stackexchange.com/questions/276601