Das Problem liegt hier wahrscheinlich am verwendeten Editor also der Art und Weise wie Editoren die Dateien aendern.
Zuerstmal zu tail -f: Der Zweck ist, dass wenn eine eine Datei um etwas erweitert wird, dies anzuzeigen. Der Klassiker sind hier Logdateien. Die koennen GB gross sein, und es wird 1 Zeile ergaenzt. Dabei bleibt die Datei im Dateisystem dort wo sie ist. Der File descriptor bleibt erhalten. Das geht zB mit echo text >> foo.log.
Wenn du mit einem Editor was aenderst, wird dabei eine neue Datei geschrieben, die alte geloescht und die neue an die richtige Stelle geschoben. Das sieht man auch, wenn man tail -F verwendet. In diesem Fall hat die Datei erst gar nicht existiert und dann gab es eine Aenderung:
$ tail -F test.log
tail: cannot open 'test.log' for reading: No such file or directory
tail: 'test.log' has appeared; following new file
foo
tail: 'test.log' has been replaced; following new file
foo
bar
Der File descriptor wurde in diesem Fall also geaendert.