Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

tail - Den letzten Teil einer Datei ausgeben

&pagelevel(4)&pagelevel

(deliver the last part of a file)


tail gibt den Inhalt der angegebenen Datei ab einer festgelegten Stelle auf die Standard-Ausgabe aus. Wenn Sie beim Aufruf von tail keine Datei angeben, wird der Inhalt der Standard-Eingabe ab einer festgelegten Stelle auf die Standard-Ausgabe ausgegeben. Wird tail auf zeichenorientierte Gerätedateien angewendet, so kann es zu Problemen kommen.


Syntax


Format 1: tail[ -f][ -c stelle | -n stelle][ datei]
Format 2: tail[ +|-[stelle][l|b|c][f]][ datei]



Format 1: tail[ -f][ -c stelle | -n stelle][ datei]


-f

(f - follow)

Wenn die Eingabedatei keine Pipe ist, dann beendet sich das Programm nach der Ausgabe nicht, sondern tritt in eine Endlosschleife ein. Es schläft jeweils mindestens eine Sekunde lang und versucht, dann weitere Datensätze der Eingabedatei zu lesen und auszugeben. Auf diese Weise können Sie z.B. das Wachstum einer Datei überwachen, in die von einem anderen Prozess geschrieben wird. -f wird ignoriert, wenn keine datei angegeben und die Standardeingabe eine Pipe ist.

-c stelle

(c - character)

Die Ausgabe von tail beginnt an dem durch stelle festgelegten Zeichen. Mit stelle legen Sie die Stelle in der Eingabedatei fest, an der die Ausgabe beginnt. Sie können angeben:

[[+|- ]zahl]

Für zahl geben Sie eine ganze Dezimalzahl an. Wenn Sie +zahl angeben, wird vom Dateianfang aus gezählt. Wenn Sie -zahl angeben, wird vom Dateiende aus gezählt.


Achtung!
Abschnitte, die vom Dateiende aus gezählt werden, werden von tail in einem Puffer zwischengespeichert. Die Größe des Puffers ist auf 4 Kbyte beschränkt.


+|- nicht angegeben:
tail zählt vom Dateiende aus.

zahl nicht angegeben:
Standard-Wert ist 10.

stelle nicht angegeben:
Standard-Wert ist -10, d.h. 10 Einheiten vom Dateiende aus gezählt.

-n stelle

(n - number)

Die Option ist äquivalent zu -c stelle, mit der Ausnahme, dass die Ausgabe zeilenweise gezählt wird und nicht byteweise.

datei

Name der Eingabedatei, die tail ausgeben soll.

datei nicht angegeben:
tail liest von der Standard-Eingabe.

Format 2: tail[ +|-[stelle][l|b|c][f]][ datei]


stelle

Mit stelle legen Sie die Stelle in der Eingabedatei fest, an der die Ausgabe beginnt. Für stelle geben Sie eine ganze Dezimalzahl an. Wenn Sie +[stelle] angeben, wird vom Dateianfang aus gezählt. Wenn Sie - [ stelle ] angeben, wird vom Dateiende aus gezählt.


Achtung!
Abschnitte, die vom Dateiende aus gezählt werden, werden von tail in einem Puffer zwischengespeichert. Die Größe des Puffers ist auf 4 Kbyte beschränkt.


stelle nicht angegeben:
Standard-Wert ist 10, d.h. 10 Einheiten ab Dateianfang oder vom Dateiende aus gezählt.


Zwischen +[stelle] bzw. -[stelle] und der Einheit ( l , b oder c ) darf kein Leerzeichen  stehen.


l

(l - line)

Die Ausgabe von tail beginnt an der durch stelle festgelegten Zeile.

b

(b - block)

Die Ausgabe von tail beginnt an dem durch stelle festgelegten Block. Ein Block ist eine Einheit von 512 byte.

c

(c - character)

Die Ausgabe von tail beginnt an dem durch stelle festgelegten Zeichen.

f

(f - follow)

Wenn die Eingabedatei keine Pipe ist, dann beendet sich das Programm nach der Ausgabe nicht, sondern tritt in eine Endlosschleife ein. Es schläft jeweils mindestens eine Sekunde lang und versucht, dann weitere Datensätze der Eingabedatei zu lesen und auszugeben. Auf diese Weise können Sie z.B. das Wachstum einer Datei überwachen, in die von einem anderen Prozess geschrieben wird.


datei

Name der Eingabedatei, die tail ausgeben soll.

datei nicht angegeben:
tail liest von der Standard-Eingabe.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos tail:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung.

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel 1

In der Datei monate steht jeweils in einer Zeile ein Monatsname. Die beiden tail-Aufrufe

$ tail -n 5 monate

$ tail -n +8 monate

haben die gleiche Ausgabe zur Folge:

August
September
Oktober
November
Dezember

Beispiel 2

Um die Wirkung der Option -f zu verdeutlichen, können Sie z.B. eine Shell-Prozedur im Hintergrund ablaufen lassen, die in einer Endlosschleife in eine Datei schreibt.

Die Shell-Prozedur steht in der Datei unendlich und hat folgenden Inhalt:

while true
do {
   date >>anna
   sleep 5
   }
done

Sie lassen nun diese Prozedur im Hintergrund ablaufen und rufen dann tail mit der Option -f auf die Datei anna angewendet auf:

$ unendlich&

656

$ tail -n -5 -f anna
Diese fuenf

Zeilen

standen vorher

schon in

der Datei

FRI JAN 23 11:40:35 MEZ 2009

FRI JAN 23 11:40:40 MEZ 2009

...

tail gibt zunächst die letzten fünf Zeilen der Datei anna aus und dann das, was die Prozedur unendlich in diese Datei schreibt. Sie können den Prozess, der durch den tail -f-Aufruf erzeugt wurde, bei Zeichenterminals mit CTRL+C (oder bei Blockterminals mit @@c) abbrechen.

Siehe auch

cat, head, more