我试图用命令输出覆盖文件,但前提是有任何输出。也就是说,我通常想要
mycommand > myfile
Run Code Online (Sandbox Code Playgroud)
但如果这会被myfile空数据覆盖,我希望保留旧版本的myfile. 我认为使用的东西ifne应该是可能的,a la
mycommand | ifne (cat > myfile)
Run Code Online (Sandbox Code Playgroud)
但这不起作用......
间接方法
mycommand | tee mytempfile | ifne mv mytempfile myfile
Run Code Online (Sandbox Code Playgroud)
有效,但我认为使用该临时文件不雅。
问:为什么我的第一个想法不起作用?它可以工作吗?或者对于我的原始问题是否有另一个不错的,也许完全不同的解决方案?
bash ×1