So speichern Sie die Ausgabe eines Befehls in einer Datei in Bash (auch bekannt als Linux- und MacOS-Terminal)
Wenn Sie einen Befehl an der Bash-Eingabeaufforderung ausführen, gibt er normalerweise die Ausgabe dieses Befehls direkt an das Terminal aus, sodass Sie ihn sofort lesen können. Mit bash können Sie jedoch auch die Ausgabe eines Befehls "umleiten", indem Sie ihn in einer Textdatei speichern und die Ausgabe später überprüfen.
Dies funktioniert in bash auf jedem Betriebssystem, von Linux und macOS bis hin zur Ubuntu-basierten bash-Umgebung von Windows 10.
Option 1: Ausgabe nur auf eine Datei umleiten
Um die Bash-Umleitung zu verwenden, führen Sie einen Befehl aus und geben Sie das an >
oder >>
Operator und geben Sie dann den Pfad einer Datei an, zu der die Ausgabe umgeleitet werden soll.
-
>
leitet die Ausgabe eines Befehls in eine Datei um und ersetzt den vorhandenen Inhalt der Datei. -
>>
Leitet die Ausgabe eines Befehls in eine Datei um und hängt die Ausgabe an den vorhandenen Inhalt der Datei an.
Technisch leitet dies "stdout" - die Standardausgabe, dh den Bildschirm - in eine Datei um.
Hier ist ein einfaches Beispiel. Das ls
Befehl listet Dateien und Ordner im aktuellen Verzeichnis auf. So. Wenn Sie den folgenden Befehl ausführen, ls
listet Dateien und Ordner im aktuellen Verzeichnis auf. Sie werden jedoch nicht auf dem Bildschirm gedruckt, sondern in der von Ihnen angegebenen Datei gespeichert.
ls> / pfad / zu / datei
Sie müssen den Pfad zu einer vorhandenen Datei nicht angeben. Geben Sie einen beliebigen gültigen Pfad an und bash erstellt eine Datei an diesem Ort.
Wenn Sie den Inhalt der Datei anzeigen, wird das angezeigt ls
Ausgabe des Befehls. Zum Beispiel die Katze
Befehl druckt den Inhalt einer Datei an das Terminal:
Katze / Pfad / zu / Datei
Denken Sie daran, das
Der Operator ersetzt den vorhandenen Inhalt der Datei durch die Ausgabe des Befehls. Wenn Sie die Ausgabe mehrerer Befehle in einer einzigen Datei speichern möchten, verwenden Sie die >
stattdessen Operator. Mit dem folgenden Befehl werden beispielsweise Systeminformationen an die von Ihnen angegebene Datei angefügt:>>
uname -a >> / path / to / file
Wenn die Datei noch nicht vorhanden ist, erstellt bash die Datei. Andernfalls lässt bash den vorhandenen Inhalt der Datei unverändert und hängt die Ausgabe an das Ende der Datei an.
Wenn Sie den Inhalt der Datei anzeigen, werden die Ergebnisse Ihres zweiten Befehls an das Ende der Datei angehängt:
Sie können diesen Vorgang beliebig oft wiederholen, um die Ausgabe an das Ende der Datei anzuhängen.
Option 2: Drucken Sie die Ausgabe normalerweise und leiten Sie sie in eine Datei um
Möglicherweise möchten Sie die Ausgabe nicht mit der >
oder >>
Operatoren, da Sie die Ausgabe des Befehls nicht im Terminal sehen. Das ist was der Abschlag
Befehl ist für. Der Abschlagbefehl druckt die empfangenen Eingaben auf dem Bildschirm und speichert es gleichzeitig in einer Datei.
Um die Ausgabe eines Befehls weiterzuleiten Abschlag
, Drucken Sie es auf Ihrem Bildschirm und speichern Sie es in einer Datei. Verwenden Sie die folgende Syntax:
Befehl | tee / pfad / zu / datei
Dadurch wird alles in der Datei durch die Ausgabe des Befehls ersetzt, genau wie das >
Operator.
Um die Ausgabe eines Befehls weiterzuleiten Abschlag
, Drucken Sie auf Ihrem Bildschirm und speichern Sie es in einer Datei, hängen Sie es jedoch an das Ende der Datei an:
Befehl | tee -a / path / to / file
Dadurch wird die Ausgabe genau wie die am Ende der Datei angehängt >>
Operator.
Die Bash-Shell enthält einige zusätzliche, erweiterte Operatoren, die ähnliche Funktionen ausführen. Sie sind besonders nützlich, wenn Sie Bash-Skripte schreiben. Weitere Informationen finden Sie im Kapitel "E / A-Umleitung" im Handbuch "Advanced Bash-Scripting".