Можно ли добавить в мой $ PATH один исполняемый файл, а не весь каталог?

9

У меня XAMPP установлен в OSX, и по умолчанию он добавляет путь к своему собственному binкаталогу (полному различных утилит) к моей $PATHпеременной:

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

Скорее , к сожалению, одна из его утилита называется HEAD, что благодаря регистронезависимой файловой системе OSX, в наталкивается с Unix headкомандой . XAMPP HEADсовершенно не связан с head(я думаю, что он выдает запрос HTTP HEAD).

Конечно, я хочу использовать headи XAMPP, и я просто изменил порядок переменных пути:

export PATH="$PATH:$XAMPP_PHP"

Это позволяет мне использовать head, но теперь существует конфликт между версией PHP для XAMPP (например, 5.5) и предустановленной версией PHP, которая поставляется с OSX (5.3). Поскольку путь к 5.3 идет первым, он в конечном итоге имеет приоритет.

Мой план для хакерского решения состоял в том, чтобы добавить полный путь к файлу + имя только версии PHP для XAMPP , а затем добавить остальную часть пути после $PATH:

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

Это не похоже на работу. Когда я перезапускаю bash и проверяю php -v, он все еще работает на PHP 5.3 - встроенной версии. Можно ли вообще добавить определенный путь к файлу $PATH?

alexw
источник
4
Нет, $PATHможет состоять только из каталогов. Вы можете просто поставить ссылку на нужный исполняемый файл в существующий каталог в вашем $PATH.
Жаворонки

Ответы:

8

Предполагая, что это echo "$PATH"отображается /usr/local/binна вашем пути, и учитывая, что это ваш личный ноутбук:

Создайте символическую ссылку /usr/local/bin, указывающую на нужный вам исполняемый файл.

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

Если это общий компьютер, и вы не хотите влиять на других пользователей, я рекомендую настроить собственное расширение для вашей переменной PATH в ~/.bash_profile. У меня есть один сам:

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

Затем я могу вставить свои пользовательские символические ссылки, сценарии и т. Д., ~/.binИ они будут работать как положено (без переопределения системных команд, которые ранее существовали в моем PATH).

Я поставил .в начале, .binчтобы мне не нужно было видеть каталог при просмотре в Finder.

Wildcard
источник