(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] |
(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 - 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:
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! +|- nicht angegeben: zahl nicht angegeben: stelle nicht angegeben:
(n - number) Die Option ist äquivalent zu -c stelle, mit der Ausnahme, dass die Ausgabe zeilenweise gezählt wird und nicht byteweise.
Name der Eingabedatei, die tail ausgeben soll. datei nicht angegeben: |
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! stelle nicht angegeben: Zwischen +[stelle] bzw. -[stelle] und der Einheit ( l , b oder c ) darf kein Leerzeichen stehen.
(l - line) Die Ausgabe von tail beginnt an der durch stelle festgelegten Zeile.
(b - block) Die Ausgabe von tail beginnt an dem durch stelle festgelegten Block. Ein Block ist eine Einheit von 512 byte.
(c - character) Die Ausgabe von tail beginnt an dem durch stelle festgelegten Zeichen.
(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.
Name der Eingabedatei, die tail ausgeben soll. datei nicht angegeben: |
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
haben die gleiche Ausgabe zur Folge:
|
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:
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 |