tail (Unix)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

tail (/usr/bin/tail), (engl. „Schwanz“, „Ende“) ist einer der vielen Textfilter in Unix und unixä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.

Arbeitsweise[Bearbeiten]

Das Verhalten und die Syntax von tail gleicht denen vieler anderer Kommandozeilen-Programme. 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, gerechnet vom Dateianfang, aus 
tail -n -100 /path/to/input      # gibt alles ab der 100. Zeile, gerechnet vom Dateiende, aus 
tail -n 100 /path/to/input       # dasselbe wie oben, d.h. die letzten 100 Zeilen

Als Default gibt tail die letzten 10 Zeilen einer Datei aus.

Obsolete Syntax-Varianten[Bearbeiten]

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 einer Datei 
tail -50c /path/to/input     # die letzten 50 Bytes einer Datei

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[Bearbeiten]

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

Weblinks[Bearbeiten]