Ich versuche, eine Datei mit Befehlsausgabe zu überschreiben, aber nur, wenn eine Ausgabe vorhanden ist. Das heißt, ich möchte normalerweise
mycommand > myfile
aber wenn dies myfile
mit leeren Daten überschrieben würde , möchte ich die alte Version von beibehalten myfile
. Ich dachte, dass etwas mit ifne
möglich sein sollte, a la
mycommand | ifne (cat > myfile)
aber das geht nicht ...
Ein indirekter Ansatz
mycommand | tee mytempfile | ifne mv mytempfile myfile
funktioniert, aber ich halte die Verwendung dieser temporären Datei für nicht relevant.
F: Warum funktioniert meine erste Idee nicht? Kann es funktionieren? Oder gibt es eine andere nette und vielleicht ganz andere Lösung für mein ursprüngliches Problem?