git-bash $PATH не может анализировать каталог Windows с пробелом

Я хотел бы использовать git-bash с клиентом github на компьютере с Windows 7 (32-разрядная версия). Каким-то образом git-bash уже изучил переменные $PATH из системы Windows PATH. Однако я обнаружил, что $PATH в git-bash неправильно анализирует системный PATH с пробелом.

например, $PATH выводит:

"..../c/Program: Нет такого файла или каталога"

Есть ли способ это исправить? где скрипт git-bash для создания оболочки $PATH для git? Спасибо


person wyonghao    schedule 03.07.2014    source источник


Ответы (9)


Почему бы не использовать абсолютное path вместо относительного path, и если папка с именем файла содержит пробел, просто используйте "" (кавычки).

Ex. cd C:/Users/"My Folder"

person Chris Hermut    schedule 19.08.2014
comment
Это не сработало для меня. Но /c/Users/My\ Folder/ сделал. - person BlenderBender; 24.10.2018
comment
Это ответ! - person Yura Kosyak; 18.09.2020

Поместите обратную косую черту ("\") перед пробелом.

ex. cd My\ Documents

person Sam Haars    schedule 28.10.2015

У меня похожая проблема.
После некоторых усилий я поместил это в первую строку своего C:\Program Files\Git\etc\profile:

экспорт HOME=`cygpath -u "\`cygpath -d "$HOMEDRIVE$HOMEPATH"\`"`

и введите команду echo $HOME в bash, получится /c/Users/NAMEXX~1, больше не будет проблем с анализом пространства для моих $HOME или ~/!

person Seagal82    schedule 10.09.2016

git-bash работает в среде Linux. Поскольку Linux не распознает \ backslash в своем пути к каталогу, вам нужно использовать / forwardslash. Используйте "", если путь к каталогу содержит пробелы.

person Ishrak    schedule 19.07.2016

Ответ для меня был близок к ответу Seagal82. Я добавил следующую строку в начале [PATH_TO_GITBASH_INSTALL]\etc\profile:

export HOME="/c/Users/Username\ with\ spaces/"

Затем я запустил новое окно git bash, и все пути в $PATH с использованием $HOME были заменены пробелом без косой черты и работают правильно.

person Draco Dynasty    schedule 17.05.2018

В основном, чтобы подтвердить, что работает: для переменных среды используйте ключевое слово экспорта:

export JAVA_HOME="/c/Program Files/Java/jdkxxxxx"

то же самое для переменной PATH и т. д.

Вы можете поместить его в свой ~/.bashrc . Затем используйте переменные вместо прямой строки с пробелами

person ilyavaio    schedule 14.03.2019

Используйте команду объявления bash -

$ declare -x PATH="/path with spaces":$PATH
person Steven Arnold    schedule 28.05.2020

Вам нужно экранировать символы, не являющиеся словами, с помощью обратной косой черты \:

Например:

$ cd Program\ Files\ \(x86\)
person Lee Smith    schedule 23.02.2021

Не делайте этого, вы можете попробовать вместо этого передать полный путь в ""(кавычки). Пример$ cd "C:\Users\folder\OneDrive - folder\file"

person Mohd Abdul Raheem    schedule 30.06.2021