Как указал SirLancelot, вы сбрасываете свой путь, а не увеличиваете его. Вы также использовали одинарные кавычки вместо двойных кавычек, поэтому в качестве набора значений была указана именно строка, а не расширенное значение $ HOME. Как уже отмечалось, правильное решение для этого заключается в использовании:
export PATH="$PATH:$HOME/opt/git/bin"
Или вы можете отменить заказ:
export PATH="$HOME/opt/git/bin:$PATH"
Однако все, что нужно сделать, это убедиться, что при вводе git
исполняемый файл будет найден.
Ваш вопрос также упоминается с использованием $git
; вам придется установить эту переменную, возможно, используя:
export git=$(which git)
Сказав это, я не вижу преимущества использования $git
, когда git
находится в вашем PATH; это один дополнительный символ для ввода (и тоже сдвинутая цифра). Если вы хотите продолжить использовать $git
, вам, вероятно, не следует добавлять $HOME/opt/git/bin
в PATH. Его присутствие замедляет неудачные поиски команд, и если вы всегда обращаетесь к git
через $git
(который теперь должен был бы быть установлен с помощью: export git=$HOME/opt/git/bin/git
), то нет никакого преимущества в наличии каталога git
bin в вашей переменной PATH.
Маси прокомментировал, что порядок не имеет смысла, а Дуглас Лидер ответил:
Порядок не имеет смысла - это порядок [в котором ищут каталоги]. Тем не менее, git
не находится ни в одном из ваших других каталогов поиска, и не должно быть никакого совпадения между командами в каталоге git
bin и любыми другими, так что порядок не будет иметь никакого значения в этом случае .
Это в основном точно, но я немного раскручиваю. При поиске команды система ищет программу, ища ее в каждом каталоге в PATH, пока не найдет ее. Таким образом, когда он ищет ls
, например, с каталогом bin git
в начале PATH, оболочки будут искать $HOME/opt/git/bin/ls
и не находят его, и передают другим каталогам в вашем PATH, в конечном итоге найти его в /usr/bin/ls
или /bin/ls
. Некоторые оболочки кэшируют место, где находится программа; другие нет. Таким образом, имеет смысл держать /bin
и /usr/bin
рядом с передней частью вашей переменной PATH, чтобы ускорить доступ к стандартным утилитам. Я всегда держу $HOME/bin
перед моей ПУТЬ; таким образом, я могу переопределить что угодно с моей собственной версией - и я делаю это для некоторых команд.
Кроме того, на моей основной рабочей машине каталог /usr/local/bin
не находится под моим контролем. Поэтому я не доверяю этому, и я удостоверяюсь, что это верно в конце моего PATH, поэтому, например, античный GCC в нем не тот, который я использую. [ Ммм; они обновили его до 3.4.6; раньше было 2,95 или около того; Тем не менее, я использую 4.3.3. ]
Еще одно предложение для вас. Подумайте о создании символической ссылки в вашем $HOME/bin
(при условии, что она у вас есть и она находится в вашей переменной PATH), которая указывает на место установки git
. Это означает, что вы не добавляете дополнительный каталог в PATH (так что все работает незначительно быстрее), но вы действительно используете версию git
, которую вы решите использовать.
ln -s $HOME/opt/git/bin/git $HOME/bin/git