Tail (Unix)
# Tail (Unix)

tail est une commande UNIX qui permet d'afficher les dernières lignes de texte d'un fichier ou de l'entrée standard.

## Syntaxe

La syntaxe est la suivante :

Par défaut, tail affiche les 10 dernières lignes de son entrée sur la sortie standard. Le nombre de lignes affichées et l'unité utilisée (lignes, blocs, octets) peuvent être changés avec une option fournie sur la ligne de commande. L'exemple suivant affiche les 20 dernières lignes de fichier :

Cet exemple affiche les 15 derniers octets de tous les fichiers commençant par foo :

Plus généralement, les caractères joker « * » (pour n caractères) et « ? » (pour 1 caractère) sont acceptés dans le nom de fichier.

Cet exemple affiche toutes les lignes de fichier à partir de la seconde ligne :

En utilisant une ancienne syntaxe (encore utilisée sur Sun Solaris car l'option -n n'y est pas gérée), les 20 dernières lignes et les 50 derniers octets de fichier peuvent être affichés avec la commande suivante :

Cependant cette syntaxe, désormais obsolète, est non conforme au standard POSIX 1003.1-2001. Même si elle est encore gérée dans les versions actuelles, lorsqu'elle est utilisée avec d'autres options (comme -f, voir plus bas), ces options peuvent ne pas fonctionner du tout.

* Lorsque l'on veut visualiser le début du fichier, il faut utiliser la commande Head.

## Suivi de fichier en temps réel

tail a une option spéciale -f qui permet à un fichier d'être surveillé. Au lieu d'afficher les dernières lignes et de quitter, tail affiche les dernières lignes et surveille le fichier. Quand des nouvelles lignes sont ajoutées au fichier par un autre processus, tail met à jour l'affichage. C'est particulièrement utile pour surveiller des fichiers journaux. La commande suivante va afficher les 10 dernières lignes de messages ainsi que les nouvelles lignes ajoutées ensuite à messages :

Pour interrompre tail lors d'un monitoring, il suffit d'interrompre le processus en appuyant sur Ctrl+C. Cette commande peut être exécutée en arrière-plan avec &.

Pour surveiller le résultat d'une commande (et non un fichier), il existe la commande watch qui exécute régulièrement la commande fournie en argument et affiche le résultat.

