Vous décrivez l' tailutilitaire 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 tailcomme ceci:
$ tail -F /var/log/messages
... et encore une fois, le fichier est pivoté, la sortie continue de circuler dans ma console car tailelle 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' -Foption, mais tail -fse comportera comme tail -Fles 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 myfiledans 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 tailla seconde session shell.
Maintenant, quittez caten appuyant sur Ctrl+Det supprimez le myfilefichier:
$ 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 -fest toujours en cours d'exécution).
Répétez l'exercice avec tail -Fet observez la différence.