Website-Suche

So übergeben Sie die Ausgabe an eine Datei unter Linux


Wenn wir die Bash-Shell auf einem Linux-System verwenden, können wir die Ausgabe eines Befehls an einen anderen Ort senden, indem wir sie beispielsweise an einen anderen Befehl oder eine Datei übergeben. Dies wird als Bash-Shellumleitung bezeichnet. Es ist in vielen verschiedenen Szenarien nützlich und ist eine der grundlegendsten und wesentlichsten Komponenten beim Erlernen der Verwendung der Bash-Shell und des Bash-Skriptings.

In diesem Tutorial stellen wir Ihnen die standardmäßigen Bash-Shell-Umleitungsoperatoren vor, die es uns ermöglichen, Standardausgabe und/oder Standardfehler an eine Datei zu senden. Sie lernen auch den Befehl tee kennen, mit dem die Ausgabe über eine Pipeline an eine Datei übergeben und gleichzeitig die Ausgabe auf dem Terminalbildschirm angezeigt werden kann. Schauen wir uns im Folgenden einige Beispiele an, um zu sehen, wie das funktioniert.

In diesem Tutorial lernen Sie:

  • So leiten Sie die Standardausgabe und/oder den Standardfehler in eine Datei um
  • So übergeben Sie die Ausgabe mit dem Befehl tee an eine Datei

So übergeben Sie die Ausgabe unter Linux an eine Datei – Befehlsbeispiele

Lassen Sie uns zunächst behandeln, wie Sie die Standardausgabe in eine Datei umleiten. Wenn Sie diese Bash-Grundlagen bereits beherrschen, können Sie mit den Beispielbefehlen fortfahren.

Normalerweise verwenden Sie > für die Umleitung, und um die Ausgabe an eine vorhandene Datei anzufügen, verwenden Sie >>. Hier senden wir die Ausgabe des Befehls echo an verschiedene Dateien:


echo "linuxconfig.org" > new-file.txt
AND
echo "linuxconfig.org" >> existing-file.txt

Mit diesen Befehlen wird die Standardausgabe in die Datei umgeleitet, und der Standardfehler wird auf dem Bildschirm angezeigt. Falls Sie neu bei Linux sind, ist die Standardausgabe nur die übliche, erwartete Ausgabe beim Ausführen eines Befehls oder Skripts, und Standardfehler sind alle Fehlermeldungen, die auftreten.

Um den Standardfehler stattdessen umzuleiten, können wir den Operator 2> verwenden. Dadurch wird die Standardausgabe auf unserem Bildschirm angezeigt und alle Fehlermeldungen werden an eine Datei gesendet.


echo "linuxconfig.org" 2> new-file.txt

Nachdem wir die Grundlagen aus dem Weg geräumt haben, werden wir nun verschiedene Befehlsbeispiele für die Umleitung der Standardausgabe und/oder des Standardfehlers in eine Datei behandeln und auch sehen, wie die Ausgabe mit dem Befehl tee in eine Datei geleitet wird.

WUSSTEN SIE SCHON?
Die eingebauten Bash-Operatoren reichen normalerweise aus, wenn es darum geht, die Ausgabe in eine Datei umzuleiten, aber gelegentlich ist die Verwendung des tee-Befehls mit einer Pipe notwendig, wenn wir die Ausgabe gleichzeitig auf unserem Bildschirm anzeigen müssen.

  1. Anstatt das > für die normale Bash-Umleitung zu verwenden, können Sie ein Rohr und den T-Stück-Befehl ohne zusätzliche Optionen verwenden. Sie müssen nur den Namen der Datei angeben, für die Sie eine Standardausgabe schreiben möchten. Die Ausgabe wird dann in Ihrem Terminal angezeigt und auch an die Datei gesendet.

    
    echo example output | tee file.txt
    

    Der Text "Beispielausgabe" wurde an unser Terminal gesendet, ebenso wie file.txt in diesem Beispiel.

  2. Sie können mit tee auch die Standardausgabe an mehrere Dateien gleichzeitig senden. Geben Sie einfach den Pfad zu jedem Dateinamen in Ihrem Befehl an.

    
    echo example output | tee file1 file2 file3
    
  3. Wenn Sie auch möchten, dass der Standardfehler in die Datei umgeleitet wird, anstatt ihn nur im Terminal anzuzeigen, können Sie den Operator 2>&1 vor dem Rohr zum T-Stück hinzufügen.

    
    echo example output 2>&1 | tee file.txt
    
  4. Um an eine Datei anzuhängen, anstatt sie zu überschreiben, was dem Bash-Operator >> entspricht, können Sie die Option -a oder --append mit tee verwenden.

    
    echo example output | tee -a file.txt
    
  5. Wenn Sie die Standardausgabe und den Standardfehler auf Ihrem Bildschirm sehen möchten, während Sie sie an dieselbe Datei anhängen, können wir die Option -a (append) mit tee und dem Operator 2>&1 verwenden.

    
    echo "linuxconfig.org" 2>&1 | tee -a existing-file.txt
    
  6. Verwenden Sie die folgende Befehlssyntax, um die Standardausgabe und den Standardfehler mit Bash-Operatoren in dieselbe Datei umzuleiten. Fügen Sie insbesondere 2>&1 an das Ende Ihres üblichen Befehls an.

    
    echo "linuxconfig.org" > new-file.txt 2>&1
    
  7. Eine etwas einfachere Möglichkeit, diese Funktionalität zu erreichen, ist der Operator &>. Beachten Sie, dass dies in Bash und zsh gut funktioniert, aber nicht in anderen Shells, also verwenden Sie das vorherige Beispiel für maximale Kompatibilität mit anderen Systemen.

    
    echo "linuxconfig.org" &> new-file.txt
    
  8. Um die Standardausgabe und den Standardfehler an eine bereits vorhandene Datei anzufügen, verwenden Sie die gleiche Syntax wie oben, jedoch mit dem Umleitungsoperator >>.

    
    echo "linuxconfig.org" >> existing-file.txt 2>&1
    
  9. Verwenden Sie die folgende Syntax, um die Standardausgabe in eine Datei und den Standardfehler in eine andere Datei umzuleiten.

    
    echo "linuxconfig.org" 2> std-err.txt 1> std-out.txt
    

Abschließende Gedanken

In diesem Tutorial haben wir gesehen, wie die Ausgabe über eine Pipeline an eine Datei auf einem Linux-System weitergeleitet wird. Dies kann erreicht werden, indem die integrierten Bash-Operatoren > und >> sowie 1>, 2> und 2>&1 für spezielle Szenarien verwendet werden. Darüber hinaus können wir den Befehl tee verwenden, der eine andere Funktionalität bietet, indem wir die Ausgabe (Standardausgabe und optional Standardfehler) an eine Datei weiterleiten, während die Ausgabe weiterhin auf Ihrem Terminalbildschirm angezeigt wird. Da es sich um leicht unterschiedliche Ansätze handelt, können Sie das richtige Werkzeug für die jeweilige Aufgabe verwenden.

Verwandte Artikel: