Estoy tratando de sobrescribir un archivo con salida de comando, pero solo si hay alguna salida. Es decir, generalmente quiero
mycommand > myfile
pero si esto sobrescribiera myfilecon datos vacíos, deseo conservar la versión anterior de myfile. Pensé que algo usando ifnedebería ser posible, a la
mycommand | ifne (cat > myfile)
Pero eso no funciona ...
Un enfoque indirecto
mycommand | tee mytempfile | ifne mv mytempfile myfile
funciona, pero considero que el uso de ese archivo temporal no es elegante.
P: ¿Por qué mi primera idea no funciona? ¿Se puede hacer funcionar? ¿O hay otra solución agradable y quizás completamente diferente para mi problema original?