Bash:仅当命令成功时才将标准输出写入文件

Bash:仅当命令成功时才将标准输出写入文件,bash,stdout,exit-code,Bash,Stdout,Exit Code,当我执行foo>bar.txt时,无论foo是否成功,都将创建bar.txt。如果foo成功,我如何才能创建bar.txt。foo>bar.txt | | rm bar.txt应该可以工作,并且简短明了。重定向到临时文件,然后在命令成功时将其移动到真实文件(否则删除它)。如果命令失败,或者干脆删除文件?使用&&漂亮的解决方案,但是如果文件bar.txt已经存在,您将丢失其以前的版本而没有新版本。在大多数情况下,这不是问题。

当我执行
foo>bar.txt
时,无论
foo
是否成功,都将创建
bar.txt
。如果
foo
成功,我如何才能创建
bar.txt

foo>bar.txt | | rm bar.txt
应该可以工作,并且简短明了。

重定向到临时文件,然后在命令成功时将其移动到真实文件(否则删除它)。如果命令失败,或者干脆删除文件?使用
&&
漂亮的解决方案,但是如果文件
bar.txt
已经存在,您将丢失其以前的版本而没有新版本。在大多数情况下,这不是问题。