git-bash $PATH无法解析带有空格的Windows目录

38
我希望使用随 GitHub 客户端一起提供的 git-bash 在 Windows 7(32位)机器上。不知何故,git-bash 已经从 Windows 系统的 PATH 中学到了 $PATH 变量。但是,我发现 git-bash 中的 $PATH 没有正确解析带空格的 win 系统 PATH。
例如,$PATH 输出:
"..../c/Program: No such file or directory"
有什么办法可以修复它?git shell 构建 $PATH 的脚本在哪里?谢谢。
12个回答

45
为什么不使用绝对路径而使用相对路径,如果文件夹或文件名包含空格,只需使用引号 ""。 例如:cd C:/Users/"My Folder"

5
这个方法对我无效。但是 /c/Users/My\ Folder/ 可以。 - BlenderBender

27

在空格前加反斜杠 ("\")。

例子:cd My\ Documents


2
对我来说,答案接近于Seagal82的答案。 我在[PATH_TO_GITBASH_INSTALL]\etc\profile的开头添加了以下行:
export HOME="/c/Users/Username\ with\ spaces/"

然后我启动了一个新的git bash窗口,所有在$PATH中使用$HOME的路径都被反斜杠空格替换,并且正常工作。


2
我有类似的问题。 经过一番努力,我将以下内容放在我的 C:\Program Files\Git\etc\profile 文件的第一行:

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

在 bash 中输入命令 echo $HOME 将会输出 /c/Users/NAMEXX~1,我的 $HOME~/ 不再出现空格解析问题!

1

您需要使用反斜杠“\”来转义非单词字符:

例如:

$ cd Program\ Files\ \(x86\)

1

不要那样做,您可以尝试这个方法,将完整路径放在引号""中。 例如:$ cd "C:\Users\folder\OneDrive - folder\file"


1
使用bash中的declare命令 -
$ declare -x PATH="/path with spaces":$PATH

1

基本上,为了确认工作情况:

对于环境变量,请使用export关键字:

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

同样适用于PATH变量等。您可以将其放在您的~/.bashrc中。然后,使用变量而不是带空格的直接字符串。

0
我在切换到Microsoft.OpenSSH.Beta之后遇到了这个问题,它将ssh.exe放在了C:\Program Files\OpenSSH\ssh.exe的位置,而不是旧的位置C:\Windows\System32\OpenSSH\ssh.exe。
所以Git需要使用新的位置,在尝试了这里的每个建议之后,最终对我有效的是"C:/Program Files/OpenSSH/ssh.exe"。
PS> git config --global core.sshCommand
"C:/Program Files/OpenSSH/ssh.exe"

0

git-bash 运行在 Linux 环境中。由于 Linux 不认识目录路径中的 \ 反斜杠,所以需要使用 / 正斜杠。如果目录路径包含空格,则使用 ""


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接