zsh:禁用“文件存在:”重定向警告

zsh:禁用“文件存在:”重定向警告

如何覆盖file exists:zsh 的警告?

> echo > newfile.txt
> echo > newfile.txt  
zsh: file exists: newfile.txt  

在这些情况下,我更喜欢我的 shell 不抱怨并简单地覆盖文件,就像 bash 一样。

同样,如何覆盖以下内容:

$ ls >> /tmp/testfile.txt                                                                                                                                                   
zsh: no such file or directory: /tmp/testfile.txt

答案1

您可以强制 ZSH重定向上的破坏者和:

>!

与 > 相同,但如果文件存在,即使未设置 CLOBBER,该文件也会被截断为零长度。

或者

>>!

与 >> 相同,但如果文件不存在,即使未设置 CLOBBER,也会创建该文件。

答案2

你的setopt输出提到了吗noclobber?既然如此,那就这样吧setopt clobber

该选项的文档位于http://zsh.sourceforge.net/Doc/Release/Options.html#index-file-clobbering_002c-allowing

答案3

其他人建议使用>!or>>!但这些不是 POSIX 标准。在没有提示的情况下覆盖文件的 POSIx 兼容方法是使用>|or >>|,这将在任何壳。

有关信息请参见此处:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_02

相关内容