Estoy usando tail -f a.txtpara ver actualizaciones en un archivo llamado a.txt.
Si actualizo el archivo usando algo como ls -a >> a.txten una segunda consola virtual, los cambios se mostrarán en tiempo real en la primera.
Si puedo actualizar el archivo con Vim en una segunda consola virtual, los cambios no se mostrarán en la primera.
Yo no necesariamente esperaba que desencadenan una actualización en esa ventana - pero ¿por qué no lo hace exactamente esta actualización del terminal que ejecuta el tail -fcomando?

tail -fcheques para APPENDs.tail -Fcomprueba si hay cambios de nombre de archivo.Respuestas:
Si edita un archivo con
vim, normalmente lee el archivo en la memoria y luego escribe un nuevo archivo. Asítailque ahora está operando en una copia desactualizada del archivo (que permanece en el sistema de archivos hasta quetail(y cualquier otro programa) deja de usarlo).Puede hacer que
tailsiga el nombre del archivo (en lugar del archivo) usando:Tenga en cuenta la mayúscula
F.fuente
tail -F¡trabajos! La consola muestra ahora un mensaje como "ha sido reemplazado a.txt: siguiendo final del nuevo archivo" y cambios en consecuencia. ¡Gracias!Tengo entendido que, por lo general, cuando edita con
vim, está editando una copia del archivo, que se coloca en su lugar cuando escribe los cambios en el disco. Dado que esto sucede al colocarunlinkel original ymovecolocar el nuevo en su lugar,tailno ve nuevos cambios en el archivo original.fuente