Top-Fragen
Zeitleiste
Chat
Kontext
Tail (Unix)
Unix-Dienstprogramm Aus Wikipedia, der freien Enzyklopädie
Remove ads
tail (/usr/bin/tail), (engl. „Schwanz“, „Ende“) ist einer der vielen Textfilter in den POSIX-Standard einhaltenden UNIX- und diesen ähnlichen Betriebssystemen und dient zur Ausgabe der letzten Zeilen einer Datei. Sein Gegenstück ist head, welches die ersten Zeilen einer Datei anzeigt.
Der Funktionsumfang und das Verhalten tails ist durch den POSIX-Standard festgelegt.[1]
Arbeitsweise
Zusammenfassung
Kontext
Das Verhalten und die Syntax von tail gleichen denen vieler anderer Kommandozeilen-Programme, insbesondere wird in der Spezifikation auf den Standard IEEE Std 1003.1-2017 verwiesen.[1][2] Es erwartet entweder einen Dateinamen oder einen Eingabe-Datenstrom auf stdin und liefert seine Ausgabe auf stdout, Fehlermeldungen werden auf stderr ausgegeben. Ausgaben können mit den herkömmlichen Mitteln (Redirection, Pipeline) umgeleitet werden.
tail [Optionen] [<file>]
Wie viel von einer Datei ausgegeben wird, kann entweder in Bytes (-c N, wobei N die Anzahl Bytes ist) oder in Zeilen (-n N, wobei N die Anzahl der Zeilen ist) angegeben werden. Vorsicht: da die Internationalisierungs-Variablen (LANG, LC_ALL, LC_CTYPE etc.) die Funktion von tail erheblich beeinflussen, ist die Anzahl der Zeichen nicht gleich der Anzahl der Bytes (etwa bei Unicode-Dateien). Durch Modifikatoren kann noch festgelegt werden, ob relativ vom Beginn der Datei oder vom Ende (der Default) gezählt wird:
tail -c +100 /path/to/input # gibt alles ab dem 100. Byte des Inputs aus tail -c -100 /path/to/input # beide Versionen geben die letzten 100 Byte des Inputs aus tail -c 100 /path/to/input tail -n +100 /path/to/input # gibt alles ab der 100. Zeile des Inputs aus tail -n -100 /path/to/input # beide Versionen geben die letzten 100 Zeilen des Inputs aus tail -n 100 /path/to/input
Als Default gibt tail die letzten 10 Zeilen einer Datei aus.
Obsolete Syntax-Varianten
Die meisten Implementationen (z. B. AIX, HP-UX) verstehen darüber hinaus auch noch eine – mittlerweile nicht mehr zur Verwendung empfohlene – Syntax, die ohne die Option -n auskommt:
tail -20 /path/to/input # die letzten 20 Zeilen des Inputs tail -50c /path/to/input # die letzten 50 Bytes des Inputs
Diese Syntax entspricht nicht dem POSIX-Standard und ist deshalb zu vermeiden. Es kann nicht vorausgesetzt werden, dass diese Syntax auf einem System oder einer zukünftigen Version desselben noch unterstützt wird.
Änderungsverfolgung
Mit dem Schalter -f (follow) wird die Ausgabe so lange kontinuierlich aktualisiert, bis dem Programm das Signal SIGINT (z. B. mit der Tastenkombination Strg + C) gesendet wird. Diese Funktion macht tail als Live-Monitor für sich laufend ändernde Dateien (z. B. Logs) geeignet.
Das folgende Beispiel zeigt die letzten 15 Zeilen des Logs eines HACMP-Clusters (/usr/es/adm/cluster.log) und ergänzt kontinuierlich neue Einträge:
tail -fn 15 /usr/es/adm/cluster.log
Remove ads
Nonstandard-Varianten
Bei der Änderungsverfolgung folgt tail der geöffneten Datei mittels Filehandle, weshalb naive Logdatei-Rotation mittels Umbenennung und Neuanlage der Datei die Weiterverfolgung verhindert. Darauf nehmen manche Implementierungen Rücksicht durch die Einführung einer Zusatzoption (-F), die die zu verfolgende Datei ausschließlich über den Dateinamen identifiziert.
Weblinks
tail: copy the last part of a file – Open Group Base Specificationtail(1): display the last part of a file – OpenBSD General Commands Manualtail(1): Den letzten Teil von Dateien ausgeben – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads