Zsh中使用>>追加输出无法创建新文件,与Bash表现不同
zsh中
echo "bar" >> foo.txt提示“file doesn't exist”的解决方案 问题根源
zsh本身支持>>运算符创建新文件,但你的环境里开启了append_no_create选项——这个选项会限制>>只能向已存在的文件追加内容,不允许创建新文件。bash没有这个选项,因此bash中执行相同命令可以正常创建文件。该选项大概率是zimfw的某个模块自动配置启用的。
临时修复(仅当前终端会话生效)
- 关闭
append_no_create选项:unsetopt append_no_create - 或者使用强制追加语法绕过限制:
echo "bar" >>! foo.txt
永久修复(所有终端会话生效)
- 先确认选项状态,验证问题根源:
若有输出,说明该选项确实处于开启状态。setopt | grep append_no_create - 打开zsh配置文件(通常是
~/.zshrc)或zimfw配置文件(~/.zimrc),找到包含setopt append_no_create的行,将其修改为unsetopt append_no_create,或者直接注释/删除该行。 - 重新加载配置使修改生效:
source ~/.zshrc
内容的提问来源于stack exchange,提问作者Yuri Aps
相关产品推荐
相关产品推荐

