34

I would like to use git-bash come with github client on a windows 7 (32bit) machine. Somehow, the git-bash has already learned the $PATH variables from windows system PATH. However, I found the $PATH in git-bash did not parse the win system PATH with space correctly.

for example the $PATH outputs:

"..../c/Program: No such file or directory"

Is there anyway to fix it? where is the git-bash script to construct the $PATH for git shell? Thanks

maxshuty
  • 7,411
  • 9
  • 51
  • 69
wyonghao
  • 341
  • 1
  • 3
  • 4

9 Answers9

41

Why not using absolute path instead of relative path and if a folder of file name contains a space just use "" (quotes).

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

maxshuty
  • 7,411
  • 9
  • 51
  • 69
Chris Hermut
  • 1,618
  • 3
  • 16
  • 32
24

Put a backslash ("\") before the space.

ex. cd My\ Documents

offby1
  • 6,211
  • 29
  • 45
Sam Haars
  • 341
  • 2
  • 2
2

I am having similar problem.
After some struggle, i put this on the first line in my C:\Program Files\Git\etc\profile:

export HOME=`cygpath -u "\`cygpath -d "$HOMEDRIVE$HOMEPATH"\`"`

and type command echo $HOME in bash will come out /c/Users/NAMEXX~1, no more space parsing problem for my $HOME or ~/ !

Seagal82
  • 131
  • 1
  • 6
1

git-bash runs in a Linux environment. As, linux doesn't recognize \ backslash in its directory path, you need to use / forwardslash. Use "" if you directory path contains spaces.

Ishrak
  • 491
  • 1
  • 9
  • 16
1

The answer for me was close to that of Seagal82. I added the following line at the start of [PATH_TO_GITBASH_INSTALL]\etc\profile:

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

Then I started a new git bash window and all the paths in $PATH using $HOME got replaced with the anti-slashed space and work correctly.

1

Basically to confirm what is working: For environment variables use export keyword:

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

same for PATH variable etc.

You can put it in your ~/.bashrc . Then, use variables instead of direct string with spaces

ilyavaio
  • 11
  • 3
1

Use the bash declare command -

$ declare -x PATH="/path with spaces":$PATH
1

You need to escape non-word-characters with a backslash "\":

For Example:

$ cd Program\ Files\ \(x86\)
Lee Smith
  • 5,961
  • 6
  • 26
  • 33
1

Don’t do that, you can try this instead pass the complete path in the ""(quotes). Example$ cd "C:\Users\folder\OneDrive - folder\file"