我在Git bash中运行这两个命令。
为什么他们的行为不同?他们不是应该做同样的事还是我错过了什么?
git diff > D:\Patches\afterWGComment.txt 在PatchesafterWGComment.txt中创建D:/文件
git diff > D:/Patches/afterWGComment.txt 正确地在afterWGComment.txt中创建D:/Patches/文件
请注意,在运行上述命令之前,D:/Patches/文件夹是存在的。
发布于 2016-11-03 08:55:15
Bash将反斜杠视为转义字符,这意味着对其后面的符号进行字面解释,并删除反斜杠本身。
$ echo $HOME
/home/user
$ echo \$HOME
$HOME在Windows下,反斜杠充当路径分隔符,这会造成一些不便。幸运的是,在单引号中,反斜杠字符失去了其特殊意义,并被按字面处理(除单引号外,其他字符除外):
$ echo '\$HOME'
\$HOME因此,如果要将Windows路径复制并粘贴到Git bash中,请将其放在单引号中:
git diff > 'D:\Patches\afterWGComment.txt'发布于 2016-11-03 08:54:23
反斜杠是一个转义字符,用于转义元字符。这意味着你需要逃离逃逸:
D:\\Patches\\afterWGComment.txt可以将字符串放在单引号中,这将使所有字符都是文字的:
'D\Patches\afterWGComment.txt'一些元字符:*,~,$,!,
发布于 2016-11-03 08:21:54
嗯,Linux中的Backslash (\)通常意味着一个escape character。因此,在您的例子中,反斜杠是转义字符串。尝试使用cd "D:\Patches\afterWGComment.txt",您就可以看到不同之处。
https://stackoverflow.com/questions/40396613
复制相似问题