Comandos LinuxExplicados en español
/
Ficha37 / 104
Categoría
Texto
Ejemplos
6
Ver también
head · less · grep · cat

tail

tail (cola)

Muestra las últimas líneas de un archivo y puede seguirlas en vivo.

Imprime el final de un archivo: por defecto las últimas 10 líneas. Con la opción -f se queda pegado al archivo y va mostrando cada línea nueva conforme se escribe, que es como ves lo que pasa en un log mientras trabaja un servidor.

Sintaxistail [opciones] [ARCHIVO...]
§ 1

Despiece

6 ejemplos
Ver las últimas 10 líneas

Ver las últimas 10 líneas

2 piezas
Lámina01 / 06
Comandotail notas.txt
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2notas.txtArgumentoEl archivo que quieres revisar.
Resultado

Aparecen las últimas 10 líneas de notas.txt. Si el archivo tiene menos, se muestran todas y ya.

Ver las últimas 20 líneas de un log

4 piezas
Lámina02 / 06
Comandotail -n 20 app.log
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2-nOpciónLines: dice cuántas líneas quieres.
320ValorLa cantidad de líneas: las últimas 20 en vez de las 10 de siempre.
4app.logArgumentoEl archivo de log que quieres revisar.
Resultado

Salen las últimas 20 líneas del log, que casi siempre son las que acabas de generar. También funciona tail -20 app.log, sin la n.

Ver desde cierta línea hasta el final

4 piezas
Lámina03 / 06
Comandotail -n +5 notas.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2-nOpciónLines: con el signo más cambia de significado.
3+5ValorEmpieza a mostrar desde la línea 5 hacia adelante, así que salta las cuatro primeras.
4notas.txtArgumentoEl archivo que quieres mostrar a partir de esa línea.
Resultado

Muestra desde la línea 5 hasta el final. Es la forma de quitarle las primeras líneas a un archivo sin abrirlo en un editor, por ejemplo para saltarte un encabezado feo.

Ver los últimos bytes del archivo

4 piezas
Lámina04 / 06
Comandotail -c 100 app.log
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2-cOpciónBytes: cuenta en bytes en vez de en líneas.
3100ValorLos últimos 100 bytes del archivo.
4app.logArgumentoEl archivo del que quieres el pedazo final.
Resultado

Muestra los últimos 100 bytes, que pueden ser la mitad de una línea. Sirve para revisar el final de un archivo binario o de un log muy grande sin volcarlo entero.

Ver un log en vivo

3 piezas
Lámina05 / 06
Comandotail -f app.log
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2-fOpciónFollow: se queda esperando e imprime cada línea nueva conforme se agrega.
3app.logArgumentoEl log que vas a estar vigilando.
Resultado

Primero salen las últimas 10 líneas y después se queda esperando. Cada vez que el archivo crece, las líneas nuevas aparecen solas. No está colgado: sales con Ctrl+C.

Ver en vivo solo lo que me interesa

6 piezas
Lámina06 / 06
Comandotail -f app.log | grep error
Piezas6
Escala1:1
N.ºPiezaTipoQué hace
1tailComandoEl comando que muestra el final de un archivo.
2-fOpciónFollow: se queda esperando las líneas nuevas.
3app.logArgumentoEl log que se está vigilando.
4|OperadorPipe: cada línea que tail imprime pasa por grep.
5grepComandoFiltra las líneas para mostrar solo las que te importan.
6errorValorLa palabra que buscas dentro del log.
Resultado

Ves únicamente las líneas que contienen error, en el momento en que se escriben. Con Ctrl+C terminas los dos comandos.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-n--lines=[+]NÚMEROMuestra las últimas NÚMERO líneas en vez de 10. Con el signo más, como -n +5, salta las primeras 4 líneas y muestra de la quinta en adelante.
-c--bytes=[+]NÚMEROMuestra los últimos NÚMERO bytes, o a partir del byte NÚMERO si le pones el signo más.
-f--followNo termina: se queda esperando e imprime lo nuevo que se agregue al archivo. Se cancela con Ctrl+C.
-FEquivale a --follow=name --retry: sigue al archivo por su nombre, así que si el log rota y se crea uno nuevo, lo vuelve a abrir. También espera si el archivo todavía no existe.
-q--quietNo pone el nombre del archivo arriba cuando le pasas más de uno. También existe como --silent.
-v--verboseSiempre pone el nombre del archivo arriba, aunque le pases un solo archivo.
-s--sleep-interval=NCon -f, espera unos N segundos entre revisiones cuando no puede usar avisos del sistema. Por defecto, 1 segundo.
§ 3

Fallas comunes

FallaRemedio
Confundir -n +5 con -n 5.Con el signo más, tail -n +5 muestra desde la línea 5 hasta el final. Sin signo, tail -n 5 muestra las últimas 5 líneas. Son cosas distintas y el signo es lo único que las separa.
Correr tail -f y pensar que se colgó porque la pantalla no avanza.Es normal: tail -f está esperando a que le escriban más líneas al archivo, que es justo para lo que sirve. Sales con Ctrl+C.
Dejar tail -f sobre un log que rota y ver que dejan de llegar mensajes.Con -f, tail sigue al descriptor del archivo original, así que si el log se renombra a app.log.1 y se crea un app.log nuevo, se queda escuchando el archivo viejo. Usa tail -F app.log, que además lo vuelve a abrir si cambia.
Creer que tail -f vuelve a imprimir todo el archivo cada vez.Solo imprime el final al arrancar (las últimas 10 líneas, o las que pidas con -n) y de ahí en adelante solo lo nuevo. Para releer el archivo completo usa less app.log.
§ 4

Preguntas frecuentes

¿Cómo veo las últimas 10 líneas de un archivo?
Con tail archivo. Por defecto imprime las últimas 10 líneas. Para cambiar la cantidad usa -n, por ejemplo tail -n 25 app.log para las últimas 25.
¿Qué hace tail -f y cómo veo un log en tiempo real?
Es follow: primero imprime el final del archivo y luego se queda esperando e imprime cada línea nueva conforme se agrega, hasta que sales con Ctrl+C. Si el log es enorme, combínalo con grep para ver solo lo que te importa: tail -f app.log | grep error.
¿Cuál es la diferencia entre tail -f y tail -F?
La F mayúscula le dice a tail que siga al nombre del archivo, no al descriptor que ya tenía abierto. Con -f, si tu log rota (se renombra y se crea uno nuevo), tail se queda leyendo el archivo viejo; con -F se mete al nuevo automáticamente.
¿Cómo muestro un archivo desde la línea 10 hasta el final?
Usa el signo más: tail -n +10 archivo. El más le dice a tail que no cuenta desde el final, sino que empieza a mostrar desde esa línea hacia adelante, así que aquí salta las nueve primeras.
¿Cómo veo las últimas líneas de varios archivos?
Pásalos todos a tail: tail -n 5 a.log b.log. Antes de cada bloque sale una etiqueta con el nombre del archivo, para que no se mezclen; con -q las quitas.
§ 5

Ver también