Vous décrivez l' tail
utilitaire GNU . La différence entre ces deux indicateurs est que si j'ouvre un fichier, un fichier journal par exemple, comme ceci:
$ tail -f /var/log/messages
... et si la fonction de rotation des journaux sur ma machine décide de faire pivoter ce fichier journal pendant que je regarde les messages qui y sont écrits ("faire pivoter" signifie supprimer ou déplacer vers un autre emplacement, etc.), la sortie que je vois sera simplement Arrêtez.
Si j'ouvre le fichier avec tail
comme ceci:
$ tail -F /var/log/messages
... et encore une fois, le fichier est pivoté, la sortie continue de circuler dans ma console car tail
elle rouvrira le fichier dès qu’il redeviendra disponible, c’est-à-dire lorsque le ou les programmes écrivant dans le journal commenceront à écrire dans le nouveau /var/log/messages
.
Sur les systèmes BSD libres, il n'y a pas d' -F
option, mais tail -f
se comportera comme tail -F
les systèmes GNU, à la différence que vous obtenez le message.
tail: file has been replaced, reopening.
dans la sortie lorsque le fichier que vous surveillez disparaît et réapparaît.
VOUS POUVEZ TESTER CE
Dans une session shell, faites
$ cat >myfile
Cela va maintenant attendre que vous tapiez des choses. Allez-y, tapez du charabia, quelques lignes. Tout sera sauvegardé dans le fichier myfile
.
Dans une autre session shell (peut-être dans un autre terminal, sans interrompre lecat
):
$ tail -f myfile
Cela montrera le (fin du) contenu de myfile
dans la console. Si vous revenez à la première session shell et que vous tapez quelque chose de plus, cette sortie sera immédiatement affichée par tail
la seconde session shell.
Maintenant, quittez cat
en appuyant sur Ctrl+Det supprimez le myfile
fichier:
$ rm myfile
Puis relancez le chat:
$ cat >myfile
... et tapez quelque chose, quelques lignes.
Avec GNU tail
, ces lignes n'apparaîtront pas dans la deuxième session du shell (où tail -f
est toujours en cours d'exécution).
Répétez l'exercice avec tail -F
et observez la différence.