Я пытаюсь перезаписать файл с выводом команды, но только если есть какой-либо вывод. То есть я обычно хочу
mycommand > myfile
но если это заменит myfileпустые данные, я хочу сохранить старую версию myfile. Я думал, что что-то с использованием ifneдолжно быть возможно, а-ля
mycommand | ifne (cat > myfile)
но это не работает ...
Косвенный подход
mycommand | tee mytempfile | ifne mv mytempfile myfile
работает, но я считаю использование этого временного файла нелегальным.
В: Почему моя первая идея не работает? Можно ли заставить его работать? Или есть другое хорошее и, возможно, совершенно другое решение для моей первоначальной проблемы?