-->

Comando tail

tail

El comando tail es una herramienta de línea de comandos utilizada en Linux para mostrar la parte final de uno o varios archivos de texto. Es especialmente útil para consultar las últimas líneas de archivos de registro (logs), comprobar información reciente y supervisar en tiempo real los cambios que se producen en un archivo.

Categoría Archivos y visualización de texto
Disponible en Linux, macOS y otros sistemas Unix
Equivalente en Windows Get-Content -Tail en PowerShell
Sustituye a Permite consultar directamente las últimas líneas de un archivo sin necesidad de abrirlo con un editor o utilizar herramientas interactivas como less.
¿Requiere permisos de administrador? No. Solo necesita permisos de lectura sobre el archivo que se desea consultar.

¿Qué significa su nombre?

TAIL significa «cola» en inglés. El nombre hace referencia a que el comando muestra la parte final, o «cola», de un archivo de texto.

Por defecto, tail muestra las últimas 10 líneas del archivo. Sin embargo, es posible modificar esta cantidad mediante diferentes opciones.

¿Para qué sirve?

El comando tail sirve principalmente para consultar las últimas líneas de un archivo de texto. Es especialmente útil cuando solo nos interesa conocer la información más reciente de un archivo y no queremos mostrar todo su contenido.

Uno de sus usos más importantes en administración de sistemas es la supervisión de archivos de registro. Mediante la opción -f (follow), tail permanece ejecutándose y muestra automáticamente las nuevas líneas que se van añadiendo al archivo.

Por ejemplo, podemos utilizar tail -f para observar en tiempo real cómo se actualiza un archivo de registro mientras un servicio está funcionando.

Sintaxis

tail [opciones] archivo

Las opciones más habituales son:

Opción Descripción
-n [número] Muestra las últimas n líneas del archivo.
-c [número] Muestra los últimos n bytes del archivo.
-f Permanece ejecutándose y muestra las nuevas líneas que se añadan al archivo.
-F Similar a -f, pero además intenta seguir el archivo aunque este sea reemplazado o renombrado.
-q No muestra los nombres de los archivos cuando se consultan varios archivos.
-v Muestra siempre el nombre del archivo antes de su contenido.

Comandos más utilizados

Comando Descripción
tail archivo.txt Muestra las últimas 10 líneas del archivo.
tail -n 20 archivo.txt Muestra las últimas 20 líneas del archivo.
tail -n 1 archivo.txt Muestra únicamente la última línea del archivo.
tail -f archivo.log Muestra las últimas líneas y continúa mostrando las nuevas líneas que se añadan al archivo.
tail -c 100 archivo.txt Muestra los últimos 100 bytes del archivo.

Equivalencia con otros sistemas

Acción Linux Windows PowerShell
Mostrar últimas 10 líneas tail archivo.txt Get-Content archivo.txt -Tail 10
Mostrar últimas 20 líneas tail -n 20 archivo.txt Get-Content archivo.txt -Tail 20
Seguir cambios en tiempo real tail -f archivo.log Get-Content archivo.log -Wait

Ejemplos

Mostrar las últimas 10 líneas de un archivo

tail archivo.txt

Mostrar las últimas 20 líneas

tail -n 20 archivo.txt

Mostrar únicamente la última línea

tail -n 1 archivo.txt

Consultar las últimas líneas de un archivo de registro

tail /var/log/syslog

Seguir un archivo de registro en tiempo real

tail -f /var/log/syslog

Con este comando, tail permanecerá ejecutándose. Cada vez que se añada nueva información al archivo, aparecerá automáticamente en la terminal. Para detener la ejecución se puede pulsar Ctrl + C.

Mostrar las últimas 50 líneas de un archivo

tail -n 50 /var/log/syslog

Combinar tail con una tubería

history | tail -n 10

Este comando muestra únicamente los últimos 10 comandos almacenados en el historial de la terminal.

Ejemplo de salida

$ tail -n 5 usuarios.txt

ana:x:1001:1001:Ana:/home/ana:/bin/bash
carlos:x:1002:1002:Carlos:/home/carlos:/bin/bash
laura:x:1003:1003:Laura:/home/laura:/bin/bash
pedro:x:1004:1004:Pedro:/home/pedro:/bin/bash
marta:x:1005:1005:Marta:/home/marta:/bin/bash

¿Cómo interpretar la salida?

  • Últimas líneas: por defecto, tail muestra las 10 últimas líneas del archivo.
  • Opción -n: permite indicar exactamente cuántas líneas queremos visualizar.
  • Opción -f: mantiene el comando activo para mostrar automáticamente las nuevas líneas que aparezcan.
  • Salida estándar: el contenido se muestra directamente en la terminal y puede combinarse con otros comandos mediante tuberías.

Una característica importante de tail es que no modifica el archivo. Su función es únicamente consultar y mostrar información.

Errores habituales

  • Confundir tail con head. Mientras que tail muestra por defecto las últimas 10 líneas, head muestra las primeras 10.
  • Utilizar tail -f y no saber cómo terminarlo. Para salir del modo de seguimiento se debe pulsar Ctrl + C.
  • Confundir -n con -c. La opción -n trabaja con líneas, mientras que -c trabaja con bytes.
  • Intentar utilizar tail para modificar un archivo. El comando únicamente permite consultar su contenido.
  • Olvidar que algunos archivos del sistema requieren permisos especiales de lectura. En esos casos puede ser necesario utilizar sudo.

Conceptos relacionados

  • Archivos de texto
  • Archivos de registro (logs)
  • Salida estándar
  • Tuberías (|)
  • Redirección
  • Procesos
  • Administración de sistemas
  • Monitorización

Comandos relacionados

  • head
  • less
  • more
  • cat
  • grep
  • watch
  • journalctl

Curiosidades

El nombre tail procede de la idea de mostrar la «cola» de un archivo, es decir, su parte final. Su funcionamiento es complementario al comando head, que permite consultar la parte inicial.

Una de las funciones más utilizadas de tail es la opción -f. El nombre procede de follow («seguir») y permite observar cómo un archivo va creciendo en tiempo real.

Esta característica es especialmente importante para los administradores de sistemas, ya que permite supervisar archivos de registro mientras se producen nuevos eventos. Por ejemplo, se puede ejecutar tail -f sobre un archivo de log mientras se inicia un servicio para comprobar qué mensajes genera.

También es habitual combinar tail con otros comandos mediante tuberías. Por ejemplo, ps aux | tail permite obtener únicamente la parte final de la salida generada por ps.

Prácticas propuestas

  1. Crea un archivo llamado prueba.txt que contenga al menos 20 líneas. Ejecuta tail prueba.txt y comprueba qué líneas aparecen.
  2. Utiliza tail -n 5 prueba.txt para mostrar únicamente las cinco últimas líneas. Después prueba con diferentes cantidades.
  3. Utiliza tail -n 1 prueba.txt para obtener únicamente la última línea del archivo.
  4. Ejecuta history | tail -n 10 para mostrar los últimos 10 comandos ejecutados en la terminal.
  5. Abre dos terminales. En una de ellas ejecuta tail -f prueba.txt y, desde la otra, añade nuevas líneas al archivo utilizando echo. Observa cómo aparecen automáticamente en la primera terminal.
  6. Prueba tail -f con algún archivo de registro disponible en tu sistema y observa qué ocurre cuando se generan nuevos eventos.
  7. Compara el comportamiento de head y tail sobre el mismo archivo. Explica qué parte del archivo muestra cada comando.
  8. Utiliza tail -c 20 archivo.txt y comprueba la diferencia respecto a utilizar tail -n 20 archivo.txt.
  9. Combina tail con grep mediante una tubería para buscar información concreta dentro de las últimas líneas de un archivo.
  10. Consulta la documentación de tail utilizando man tail y busca otras opciones que no se hayan explicado en esta práctica.

Consejo: Aprende especialmente las opciones -n y -f. La primera permite controlar cuántas líneas quieres visualizar y la segunda convierte tail en una herramienta muy útil para monitorizar archivos de registro en tiempo real.

Preguntas de reflexión:

  1. ¿Qué información muestra tail por defecto cuando no se especifica ninguna opción?
  2. ¿Qué diferencia existe entre tail y head?
  3. ¿Para qué sirve la opción -n?
  4. ¿Qué significa la opción -f y por qué resulta especialmente útil para trabajar con archivos de registro?
  5. ¿Qué diferencia existe entre tail -n 10 y tail -c 10?
  6. ¿Por qué puede ser necesario utilizar sudo al consultar determinados archivos del sistema?
  7. ¿Qué ventaja aporta combinar tail con una tubería (|)?
  8. ¿Qué ocurre cuando ejecutamos tail -f y se añaden nuevas líneas al archivo que estamos siguiendo?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué información muestra tail por defecto cuando no se especifica ninguna opción?

Cuando se ejecuta tail sin indicar ninguna opción, el comando muestra las últimas 10 líneas del archivo especificado. Este comportamiento permite consultar rápidamente la parte más reciente de un archivo sin necesidad de indicar explícitamente la cantidad de líneas.


2. ¿Qué diferencia existe entre tail y head?

Ambos comandos permiten visualizar una parte de un archivo, pero trabajan sobre extremos opuestos. head muestra por defecto las primeras 10 líneas, mientras que tail muestra las últimas 10. Por tanto, head es especialmente útil para consultar el comienzo de un archivo y tail para consultar su parte final.


3. ¿Para qué sirve la opción -n?

La opción -n permite indicar el número de líneas que queremos visualizar. Por ejemplo, tail -n 20 archivo.txt muestra las últimas 20 líneas. Es una opción especialmente útil cuando las 10 líneas que muestra el comando por defecto no son suficientes.


4. ¿Qué significa la opción -f y por qué resulta especialmente útil para trabajar con archivos de registro?

La opción -f significa follow («seguir»). Hace que tail permanezca ejecutándose y muestre automáticamente las nuevas líneas que se añadan al archivo. Esto resulta muy útil para supervisar archivos de registro porque permite observar en tiempo real los mensajes y eventos que genera un servicio o aplicación.


5. ¿Qué diferencia existe entre tail -n 10 y tail -c 10?

-n 10 indica que queremos obtener las últimas 10 líneas del archivo, mientras que -c 10 solicita los últimos 10 bytes. Las líneas representan unidades de texto delimitadas por saltos de línea, mientras que los bytes representan unidades de almacenamiento de datos. Por tanto, ambas opciones pueden producir cantidades de información muy diferentes.


6. ¿Por qué puede ser necesario utilizar sudo al consultar determinados archivos del sistema?

Algunos archivos del sistema están protegidos y solo pueden ser leídos por determinados usuarios o grupos. Si el usuario actual no dispone de permisos suficientes, la lectura puede producir un error de permisos. En estos casos, y siempre que sea necesario y apropiado, se puede utilizar sudo para ejecutar tail con privilegios elevados.


7. ¿Qué ventaja aporta combinar tail con una tubería (|)?

La tubería permite enviar la salida de un comando como entrada de tail. De esta manera podemos obtener únicamente la parte final de una salida que puede ser muy extensa. Por ejemplo, history | tail -n 10 permite visualizar únicamente los últimos 10 comandos del historial.


8. ¿Qué ocurre cuando ejecutamos tail -f y se añaden nuevas líneas al archivo que estamos siguiendo?

tail -f permanece atento a los cambios que se producen en el archivo. Cuando otro proceso o usuario añade nuevas líneas, estas aparecen automáticamente en la terminal. El comando continúa funcionando hasta que el usuario lo interrumpe, normalmente pulsando Ctrl + C.