Anhängen von Ausgabe mit tee
Standardmäßig überschreibt der tee-Befehl die Zieldatei jedes Mal, wenn er verwendet wird. In vielen Szenarien möchten Sie jedoch neue Informationen an eine vorhandene Datei anhängen, anstatt deren Inhalt zu ersetzen. Hier kommt die Option -a (append, anhängen) zum Einsatz.
Verständnis der Anhängeoption
Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd /home/labex/project
Erstellen wir zunächst eine Datei mit Systeminformationen:
uname -a | tee system_info.log
Dieser Befehl zeigt Ihre Systeminformationen im Terminal an und speichert sie in system_info.log. Die Ausgabe sieht in etwa so aus (Ihre Ausgabe kann abweichen):
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Jetzt überprüfen wir den Inhalt der Datei:
cat system_info.log
Sie sollten die gleichen Systeminformationen sehen.
Jetzt fügen wir mithilfe der Option -a weitere Informationen an diese Datei an:
echo "Date and time: $(date)" | tee -a system_info.log
Dies wird etwas wie Folgendes anzeigen:
Date and time: Wed May 3 14:22:34 UTC 2023
Das Flag -a teilt tee mit, die Ausgabe an die Datei anzuhängen, anstatt sie zu überschreiben.
Lassen Sie uns erneut den Inhalt der Datei überprüfen:
cat system_info.log
Sie sollten jetzt sowohl die Systeminformationen als auch das Datum sehen:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Fügen wir noch mehr Informationen zu unserer Protokolldatei hinzu:
echo "Disk usage:" | tee -a system_info.log
df -h | tee -a system_info.log
Dies wird Informationen zur Datenträgerauslastung anzeigen und sie an unsere Protokolldatei anhängen. Die Ausgabe variiert je nach Ihrem System, aber sie könnte in etwa so aussehen:
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Lassen Sie uns erneut den Inhalt unserer Protokolldatei überprüfen:
cat system_info.log
Sie sollten jetzt alle Informationen sehen, die wir hinzugefügt haben:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Verständnis der Befehlsstruktur
Die Syntax für das Anhängen mit tee lautet:
command | tee -a filename
Dabei gilt:
command ist ein beliebiger Befehl, der eine Ausgabe erzeugt
| (Pipe) sendet die Ausgabe des Befehls an tee
tee ist der Befehl selbst
-a ist die Option, um die Ausgabe an die Datei anzuhängen, anstatt sie zu überschreiben
filename ist der Name der Datei, an die die Ausgabe angehängt wird
Dieser Ansatz ist besonders nützlich für:
- Die schrittweise Erstellung von Protokolldateien
- Das Erfassen der Ausgabe mehrerer Befehle in einer einzigen Datei
- Das Aufrechterhalten eines Datensatzes über Systemzustände oder -operationen