GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Leiten Sie die gesamte Ausgabe in eine Datei in Bash um

Alle POSIX-Betriebssysteme haben 3 Streams:stdin, stdout und stderr. stdin ist die Eingabe, die stdout oder stderr akzeptieren kann. stdout ist die primäre Ausgabe, die mit > umgeleitet wird , >> , oder | . stderr ist die Fehlerausgabe, die separat behandelt wird, damit keine Ausnahmen an einen Befehl weitergegeben oder in eine Datei geschrieben werden, die beschädigt werden könnte; Normalerweise wird dies an eine Art Protokoll gesendet oder direkt ausgegeben, selbst wenn die Standardausgabe umgeleitet wird. Um beide an denselben Ort umzuleiten, verwenden Sie:

$command &> /some/file

BEARBEITEN :Danke an Zack für den Hinweis, dass die obige Lösung nicht portabel ist – verwenden Sie stattdessen:

$command > file 2>&1 

Wenn Sie den Fehler stummschalten möchten, tun Sie Folgendes:

$command 2> /dev/null

Dieser Teil wird in stderr geschrieben, verwenden Sie 2> es umzuleiten. Zum Beispiel:

foo > stdout.txt 2> stderr.txt

oder wenn Sie in derselben Datei wollen:

foo > allout.txt 2>&1

Hinweis:Dies funktioniert in (ba)sh, überprüfen Sie Ihre Shell auf die richtige Syntax


Linux
  1. Wie leite ich die Ausgabe eines Programms in eine Zip-Datei um?

  2. Möglichkeit, die Ausgabe eines Programms umzuleiten und trotzdem nach Stdout zu gehen?

  3. Befehl zum Ausgeben von Dateiinhalten an Stdout?

  4. Wie leite ich nur Stderr um?

  5. Nur Stderr auf dem Bildschirm anzeigen, aber sowohl Stdout als auch Stderr in Datei schreiben?

Bash:In Datei schreiben

So leiten Sie stderr in Bash auf stdout um

So leiten Sie die Shell-Befehlsausgabe um

Ausgabe umleiten und leiten?

So leiten Sie die Ausgabe des systemd-Dienstes in eine Datei um

bash:leite stderr auf Datei und stdout + stderr auf Bildschirm um