Leer las últimas líneas de un archivo en Linux es una tarea muy común, sobre todo cuando trabajas con registros del sistema (logs) o archivos de texto extensos. Linux ofrece varias formas de lograrlo, desde comandos básicos hasta combinaciones más avanzadas. A continuación tienes siete comandos para obtener las últimas 10 líneas de un archivo, y al final una tabla resumen para elegir el que más te conviene.
1. tail
El comando más conocido y directo para esta tarea es tail, diseñado específicamente para mostrar las últimas líneas de un archivo.
tail -n 10 archivo.txt
Si omites el argumento -n, tail asume por defecto las últimas 10 líneas:
tail archivo.txt
2. head combinado con tac
Aunque head muestra las primeras líneas, puedes invertir el archivo con tac y extraer las primeras 10 (que son las últimas del original):
tac archivo.txt | head -n 10
Ojo: esto te devuelve las 10 últimas líneas pero en orden inverso. Útil si justamente quieres ver primero la línea más reciente.
3. awk
awk es una herramienta potente para manipular texto. Para imprimir las últimas 10 líneas, guarda cada línea y al llegar al final del archivo imprime las 10 últimas:
awk '{ lineas[NR] = $0 } END { for (i = NR-9; i <= NR; i++) if (i > 0) print lineas[i] }' archivo.txtEs más verboso que tail, pero interesante cuando ya vas a hacer un filtrado o procesamiento adicional con awk.
4. sed
sed también puede imprimir las últimas líneas: cuenta el total y muestra desde «total menos 9» hasta el final:
sed -n "$(($(wc -l < archivo.txt) - 9)),\$p" archivo.txt
Más complejo, pero se integra bien dentro de scripts.
5. grep
grep, combinado con tail, sirve cuando necesitas filtrar contenido concreto y quedarte con las últimas coincidencias:
grep "palabra_clave" archivo.txt | tail -n 10
Ideal para localizar eventos concretos en registros grandes.
6. less con salto al final
less sirve para navegar manualmente por archivos grandes. Abre el archivo y salta al final pulsando Shift + G:
less archivo.txt
Puedes profundizar en el comando less en Dominando el comando «less» en Linux.
7. perl para personalización avanzada
Si necesitas más flexibilidad, perl ofrece una solución avanzada que imprime las últimas 10 líneas:
perl -ne 'push @lines, $_; shift @lines if @lines > 10; END { print @lines }' archivo.txtÚtil en entornos donde no dispones de las utilidades estándar.
Bonus: ver las últimas líneas en tiempo real (tail -f)
Cuando vigilas un log que crece constantemente, no quieres las últimas 10 líneas una vez, sino verlas en directo a medida que se escriben. Para eso está tail -f (follow):
# Seguir un log en tiempo real tail -f /var/log/syslog # Empezar mostrando las ultimas 20 lineas y seguir tail -n 20 -f /var/log/nginx/access.log
Pulsa Ctrl + C para dejar de seguir el archivo.
Tabla resumen: ¿qué comando usar?
| Comando | Cuándo usarlo |
|---|---|
tail -n 10 | La opción rápida y estándar. La mejor en el 90 % de los casos. |
tail -f | Seguir un log en tiempo real mientras crece. |
tac | head | Ver las últimas líneas en orden inverso. |
grep ... | tail | Filtrar por texto y quedarte con las últimas coincidencias. |
awk / sed / perl | Dentro de scripts o cuando ya procesas el texto con esas herramientas. |
Para el día a día, tail es tu mejor aliado; el resto de comandos te dan control extra cuando lo necesitas. ¿Conoces algún otro truco para leer el final de un archivo? Déjalo en los comentarios.

