Manchmal möchten Sie überwachen, welche neuen Informationen in eine Datei geschrieben werden (denken Sie an Protokolldateien), oder Sie möchten aus welchen Gründen auch immer auf die letzten paar Zeilen einer Datei zugreifen. Nun, es gibt ein Befehlszeilenprogramm, mit dem Sie dies unter Linux tun können, und es heißt tail .
In diesem Tutorial werden wir die Grundlagen des tail-Befehls anhand einiger leicht verständlicher Beispiele besprechen. Aber bevor wir das tun, ist es erwähnenswert, dass alle in diesem Artikel enthaltenen Beispiele auf Ubuntu 16.04 LTS getestet wurden.
Linux-Tail-Befehl
Wie bereits erwähnt, gibt das tail-Kommando den letzten Teil der ihm zugeführten Dateien als Input aus. Es folgt die Syntax:
tail [OPTION]... [DATEI]...
Und hier ist, was die Manpage des Tools darüber sagt:
Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each with
a header giving the file name. With no FILE, or when FILE is -, read standard input.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Tail funktioniert Befehl funktioniert.
Q1. Wie benutzt man Schwanz?
Die grundlegende Verwendung ist sehr einfach – Sie müssen lediglich den Namen der Datei übergeben, deren letzte 10 Zeilen das Tool anzeigen soll. Zum Beispiel:
tail file1
Es folgen die letzten 10 Zeilen in Datei2 auf meinem System:
Q2. Wie ändere ich die Anzahl der Zeilen am Schweif?
Wie Sie inzwischen wissen, druckt der tail-Befehl standardmäßig 10 Zeilen. Sie können diese Nummer jedoch mit der Befehlszeilenoption -n ändern.
tail -n [num] [filename]
Zum Beispiel:
tail -n 5 file2
Q3. Wie lässt man tail eine festgelegte Anzahl von Bytes ausgeben?
Was ist, wenn Sie anstelle von Zeilen möchten, dass tail mit Bytes umgeht? Ich meine, was ist, wenn die Anforderung darin besteht, 20 Bytes zu drucken? Nun, dies kann mit der Befehlszeilenoption -c erfolgen.
tail -c [num] [filename]
Zum Beispiel:
tail -c 20 file2
Q4. Wie erstellt man Tail-Follow-Log-Dateien?
Wenn Sie tail verwenden möchten, um Aktualisierungen einer Datei (z. B. einer Protokolldatei) in Echtzeit zu verfolgen, verwenden Sie die Befehlszeilenoption -F oder --follow.
tail -F [filename]
Zum Beispiel:
tail -F file2
Beachten Sie, dass -f gleich '--follow=name --retry' ist.
Hier sind einige Informationen, die die Manpage über die Optionen -f/-F/--follow auflistet:
With --follow (-f), tail defaults to following the file descriptor, which means that even if a
tail'ed file is renamed, tail will continue to track its end. This default behavior is not
desirable when you really want to track the actual name of the file, not the file descriptor
(e.g., log rotation). Use --follow=name in that case. That causes tail to track the named file in
a way that accommodates renaming, removal and creation.
F5. Wie kann man tail zwingen, weiterhin auf die Eingabedatei zuzugreifen?
Manchmal kann auf eine Datei vorübergehend nicht zugegriffen werden, was aus verschiedenen Gründen passieren kann. Um sicherzustellen, dass tail weiterhin versucht, die Datei zu öffnen, verwenden Sie die Option --retry.
tail --retry [filename]
Schlussfolgerung
So funktioniert also der tail-Befehl. Ich hoffe, Ihnen hat das Tutorial gefallen und Sie haben nützliche Dinge daraus gelernt. Wir empfehlen Ihnen, diese Beispiele auf Ihrem Linux-PC auszuprobieren und dann auf der Manpage des Tools nach weiteren Informationen zu suchen.