如何在Git Bash命令行中转义单个斜杠?
解决Git Bash中传递单个斜杠被自动替换的问题
我太懂这种踩坑的烦躁感了!你遇到的这个问题,是Git Bash底层依赖的MSYS环境自带的路径自动转换特性搞的鬼,和Cygwin的路径处理逻辑不一样,咱们一步步把它搞定:
问题根源
Git Bash基于MSYS构建,它默认会把POSIX风格的路径自动转换成Windows格式路径。当你输入单个/时,MSYS会把它识别成MSYS环境的根目录——也就是你Git的安装路径C:/Program Files (x86)/Git/。而且这个转换是在命令解析前完成的,所以不管你用转义符还是单引号,都绕不开它的自动替换。
快速临时解决方案
如果只是单次命令需要传递单个斜杠,直接在命令前加上MSYS_NO_PATHCONV=1环境变量,临时禁用路径转换:
MSYS_NO_PATHCONV=1 ~/tmp/args /
执行后你会发现,输出里的第二个参数终于变成了单个/,而不是Git的安装路径了。
永久生效方案
要是你经常需要用到这个功能,不想每次都手动加环境变量,可以把禁用路径转换的配置加到Git Bash的启动脚本里:
- 打开Git Bash,编辑
~/.bashrc文件(如果没有就新建一个):nano ~/.bashrc - 在文件末尾添加一行:
export MSYS_NO_PATHCONV=1 - 保存退出后,执行
source ~/.bashrc让配置立即生效,或者重启Git Bash也可以。
这样以后不管你在Git Bash里传递单个斜杠,还是其他不想被转换的路径,都不会再被自动替换啦!
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

