Estou tentando substituir um arquivo com saída de comando, mas apenas se houver alguma saída. Ou seja, eu normalmente quero
mycommand > myfile
mas se isso sobrescrever myfilecom dados vazios, desejo manter a versão antiga do myfile. Eu pensei que algo usando ifnedeveria ser possível, a la
mycommand | ifne (cat > myfile)
mas isso não funciona ...
Uma abordagem indireta
mycommand | tee mytempfile | ifne mv mytempfile myfile
funciona, mas considero deselegante o uso desse arquivo temporário.
P: Por que minha primeira ideia não funciona? Isso pode ser feito? Ou existe outra solução agradável e talvez completamente diferente para o meu problema original?