$ tail -f testfile
la commande est censée afficher les dernières entrées du fichier spécifié, en temps réel, non? Mais ce n'est pas le cas. Corrigez-moi s'il vous plaît, si ce que je compte faire est faux ...
J'ai créé un nouveau fichier "aaa" et ajouté une ligne de texte et l'a fermé. puis a émis cette commande (première ligne):
$ tail -f aaa
xxx
xxa
axx
les trois dernières lignes représentent le contenu du fichier aaa. Maintenant que la commande est toujours en cours d'exécution (depuis que je l'utilise -f
), j'ai ouvert le fichier aaa via l'interface graphique et commencé à ajouter quelques lignes supplémentaires manuellement. Mais le terminal ne montre pas les nouvelles lignes ajoutées dans le fichier.
Quel est le problème ici? La tail -f
commande affiche uniquement les nouvelles entrées si elles sont écrites par le système uniquement? (comme les fichiers journaux, etc.)
la source
$ tail -F filename
commande tout le temps au lieu de$ tail -f filename
bien?lsof
peut montrer ce qui se passe - par exemplelsof -Fpcftni
montrerait que l'inode suivi partail
n'est plus le même que celui que l'éditeur a ouvert.Votre éditeur a son propre tampon pour le fichier. Lorsque vous modifiez le texte dans l'éditeur, rien n'est écrit dans le fichier lui-même.
Lorsque vous enregistrez vos modifications, il est probable que l'éditeur supprime simplement l'ancien fichier et en crée un nouveau.
tail -f
sera toujours connecté au fichier supprimé, ainsi il ne montrera rien de nouveau.la source
tail
"rafraichir" chaque 1 seconde par défaut, pas en temps réel.Essayez avec ceci (vous avez besoin de bash4):
touch ~/output.txt
ettail -f ~/output.txt
.for i in {0..100}; do sleep 2; echo $i >> ~/output.txt ; done
la source
echo $i >> ~/output.txt
? En outre, cette réponse manque le but de la question.tailf
a une implémentation basée sur inotify. Donc, il va actualiser en temps réel.tailf
, maistail
utilise inotify ?. Je ne savais pastailf
. La page de manuel de tail affiche la valeur par défaut de 1 seconde pour-s
.tail
suivi et utilise maintenant inotify aussi lorsque disponible.tailf
n’interroge pas du tout, mais dort, quand il n’ya aucune activité sur le fichier.tail -f
montre de l'activité (voir lastrace
sortie).