Wie füge ich Tee in Bash an eine Datei an?

74

Dies sind Befehle, die ich im Terminal eingebe

echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee ~/output.log

Wenn ich in die Datei output.log schaue, sehe ich nur 'Zweite Zeile'. Wie kann ich sicherstellen, dass das Tee angehängt wird (anstatt die Datei zu löschen)?

Ich möchte dies in der Datei sehen können:

First Line
Second Line

Sollte ich das anders angehen?

Vielen Dank!

Bluebeep
quelle

Antworten:

119
echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee -a ~/output.log
                            ^^

Vom mann tee :

   Copy standard input to each FILE, and also to standard output.

   -a, --append
          append to the given FILEs, do not overwrite

Hinweis: Bei Verwendung von wird -aimmer noch die erwähnte Datei erstellt.

user4556274
quelle
12
Zum Nutzen der Suchenden steht der Modifikator -a für "Anhängen" oder "Anhängen" am Ende. Ohne -a überschreibt der Befehl tee die Datei.
Chili555
1
Erstellt tee die Datei immer noch, wenn sie nicht existiert, wenn die Option "-a" enthalten ist?
Bryson S.
@ chili555: Ist es möglich, an den Anfang der Datei anzuhängen, nicht an das Ende, und eine Datei nicht zu überschreiben? Vielen Dank.
Саша Черных
2
@ СашаЧерных Keine, die ich kenne. Das klingt nach einem großartigen Thema für eine neue Frage!
Chili555
1
@ Саша Черных 'cat source.file destination.file | tee destination.file 'fügt source.file am Anfang von destination.file an. Der einzige Haken bei diesem Ansatz ist, dass tee beide Dateien druckt.
Bruno9779