Describe la tailutilidad GNU . La diferencia entre estos dos indicadores es que si abro un archivo, un archivo de registro, por ejemplo, así:
$ tail -f /var/log/messages
... y si la función de rotación de registros en mi máquina decide rotar ese archivo de registro mientras veo que se escriben mensajes en él ("rotar" significa eliminar o mover a otra ubicación, etc.), la salida que veo simplemente detener.
Si abro el archivo tailasí:
$ tail -F /var/log/messages
... y nuevamente, el archivo gira, la salida continuará fluyendo en mi consola porque tailvolvería a abrir el archivo tan pronto como esté disponible nuevamente, es decir, cuando los programas que escriben en el registro comenzaron a escribir en el nuevo /var/log/messages .
En los sistemas BSD gratuitos, no hay -Fopción, pero tail -fse comportará como lo tail -Fhace en los sistemas GNU, con la diferencia de que recibe el mensaje
tail: file has been replaced, reopening.
en la salida cuando el archivo que está monitoreando desaparece y vuelve a aparecer.
PUEDES PROBAR ESTO
En una sesión de shell, haz
$ cat >myfile
Eso ahora esperará a que escribas cosas. Simplemente adelante y escriba algunas galimatías, unas pocas líneas. Todo se guardará en el archivo myfile.
En otra sesión de shell (tal vez en otra terminal, sin interrumpir elcat ):
$ tail -f myfile
Esto mostrará el contenido (final de) myfileen la consola. Si vuelve a la primera sesión de shell y escribe algo más, esa salida se mostrará inmediatamente tailen la segunda sesión de shell.
Ahora salga catpresionando Ctrl+Dy elimine el myfilearchivo:
$ rm myfile
Luego corre el gato otra vez:
$ cat >myfile
... y escribe algo, unas pocas líneas.
Con GNU tail, estas líneas no aparecerán en la segunda sesión de shell (donde tail -ftodavía se está ejecutando).
Repita el ejercicio con tail -Fy observe la diferencia.
tail -f foo.logy su sistema se muevefoo.loga, por ejemplo,foo.log.0.gzla salida que ve simplemente se detendrá. Si lo usa,-Fpor otro lado, vería el contenido de la nuevafoo.logsin interrupciones intermedias.Simplificado, cuando abre un archivo, obtendrá el inodo que contiene algunos metadatos de dónde se encuentra exactamente el archivo en su disco. Tail escuchará los cambios en ese archivo.
Si elimina el archivo y crea uno nuevo con el mismo nombre, el nombre del archivo será el mismo pero es un inodo diferente (y probablemente almacenado en un lugar diferente en su disco).
tail -frellene no vuelva a intentarlo y cargue el nuevo inodo,tail -Flo detectará.El mismo efecto ocurrirá si cambia el nombre / mueve un archivo. Si, por ejemplo, sigue
/var/log/messagesy rotar log, gira el registro a/var/log/messages.1. tail with-ftodavía escuchará el viejo inodo que señalamessages.1. tail se-Fdará cuenta de esto y leerá el nuevo inodo.fuente