Wie hängt man die Ausgabe an eine Datei an?

125

Wie kann ich so etwas tun command > file, dass es an die Datei angehängt wird, anstatt es zu überschreiben?

Tom Brito
quelle
1
(Es gibt viele, viele - vielleicht viel zu viele! - Extras im Bash-Referenzhandbuch, einschließlich aller Arten von Weiterleitungen. Passen Sie sie nach Bedarf für die Shell an.)
4
Sie können auch tee verwenden, wenn Sie sowohl zu STDOUT umleiten als auch Ergebnisse an eine Datei anhängen möchten. Zum Beispiel: Echo "Hallo" | tee -a somefile.txt, wobei das Flag -a für Anhängen steht.
Henrik

Antworten:

212

Verwenden Sie >>zum Anfügen:

command >> file
Mike Lewis
quelle
103

Ja.

command >> filenur stdout von umleiten command.

command >> file 2>&1um stdout und stderr in die Datei umzuleiten (funktioniert in bash, zsh)

Und wenn Sie verwenden müssen sudo, denken Sie daran

sudo command >> /file/requiring/sudo/privilegesfunktioniert nicht, da die Erhöhung der Berechtigungen für den commandTeil der Shell-Umleitung gilt, dieser jedoch nicht. Die einfache Verwendung teelöst jedoch das Problem:

command | sudo tee -a /file/requiring/sudo/privileges

EdvardM
quelle
6
Ich benutze dies für alle Ausgabeerfassungsprogramme.sh 2> & 1 | tee -a screen.log. "-a" steht für anhängen.
Xdg
-3

Sie können die Datei mit dem Zeichen >> anhängen. Es fügt den Inhalt am letzten der Datei ein, die wir verwenden. Wenn die Datei den Namen myfile lautet, enthält sie xyz, dann cat >> myfile abc ctrl d

Nach dem obigen Vorgang enthält die myfile xyzabc.

user3680358
quelle
4
Der >>Betreiber wurde bereits vor drei Jahren erwähnt, und das OP weiß, was Anhängen bedeutet.
Dan Dascalescu