42

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

0

11 Answers 11

47

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"

Sign up to request clarification or add additional context in comments.

1 Comment

This didn't work for me. But /c/Users/My\ Folder/ did.
29

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

ex. cd My\ Documents

Comments

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 ~/ !

Comments

2

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.

Comments

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

Comments

1

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

For Example:

$ cd Program\ Files\ \(x86\)

Comments

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"

Comments

1

In my case I wanted to set a convenience environment variable pointing inside my OneDrive for Business folder, which was something like /c/Users/username/OneDrive - Business Name/somefolder

So in /c/Users/username/.profile I have a line like

export FOLDER='/c/Users/username/OneDrive - Business Name/somefolder'

Note the single quotes. When I want to use that environment variable I still have to double quote it for it to work, e.g:

$ cd "$FOLDER"

Comments

0

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.

Comments

0

Use the bash declare command -

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

Comments

0

I have come to appreciate, specifically if in a Windows OS Git Bash shell "setting", the possibility to use "short names" ie the foldername info you get when you run dir /X in a directory and then use that eg for Program Files this would be PROGRA~1 (which contains no spaces anymore). Then using that shortname in paths or similar definitions within the .bashrc (or similar) files.
As an additional info [here] Program Files (x86) shortname would be PROGRA~2
I recently discovered this to be the most stable solution for exporting a variable in Git Bash's .bash_profile

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.