为何GitBash使用别名时会生成名为“1”的文件?
解决Git Bash别名生成“1”文件的问题
问题根源
你使用的命令/git-bash.exe & > /dev/null 2&>1存在Shell重定向语法错误:
2&>1是错误写法,Shell会将其解析为把输出重定向到文件“1”,同时把“2”当作额外参数传递给程序,这就是生成“1”文件的直接原因。- 后台运行符号
&的位置不合理,容易导致Shell解析混乱。
正确的别名命令
替换成以下两种正确写法之一即可:
写法1:标准重定向格式
alias gitbash='/path/to/git-bash.exe > /dev/null 2>&1 &'
> /dev/null:将标准输出(stdout)重定向到空设备2>&1:将标准错误(stderr)重定向到标准输出的位置(即跟着stdout一起进入/dev/null)- 末尾的
&:让程序在后台运行
写法2:简洁重定向格式
Bash支持用&>/dev/null一次性将stdout和stderr都重定向到空设备,命令更简洁:
alias gitbash='/path/to/git-bash.exe &>/dev/null &'
生效步骤
- 打开你的
aliases.sh文件(如果是通过~/.bashrc或~/.bash_profile引入的,也可以直接修改对应文件) - 替换掉原来的错误命令,保存文件
- 执行以下命令让别名立即生效:
source aliases.sh
内容的提问来源于stack exchange,提问作者Stacklep1
相关产品推荐
相关产品推荐

