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,
tailmuestra 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
tailconhead. Mientras quetailmuestra por defecto las últimas 10 líneas,headmuestra las primeras 10. - Utilizar
tail -fy no saber cómo terminarlo. Para salir del modo de seguimiento se debe pulsarCtrl + C. - Confundir
-ncon-c. La opción-ntrabaja con líneas, mientras que-ctrabaja con bytes. - Intentar utilizar
tailpara 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
headlessmorecatgrepwatchjournalctl
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
- Crea un archivo llamado
prueba.txtque contenga al menos 20 líneas. Ejecutatail prueba.txty comprueba qué líneas aparecen. - Utiliza
tail -n 5 prueba.txtpara mostrar únicamente las cinco últimas líneas. Después prueba con diferentes cantidades. - Utiliza
tail -n 1 prueba.txtpara obtener únicamente la última línea del archivo. - Ejecuta
history | tail -n 10para mostrar los últimos 10 comandos ejecutados en la terminal. - Abre dos terminales. En una de ellas ejecuta
tail -f prueba.txty, desde la otra, añade nuevas líneas al archivo utilizandoecho. Observa cómo aparecen automáticamente en la primera terminal. - Prueba
tail -fcon algún archivo de registro disponible en tu sistema y observa qué ocurre cuando se generan nuevos eventos. - Compara el comportamiento de
headytailsobre el mismo archivo. Explica qué parte del archivo muestra cada comando. - Utiliza
tail -c 20 archivo.txty comprueba la diferencia respecto a utilizartail -n 20 archivo.txt. - Combina
tailcongrepmediante una tubería para buscar información concreta dentro de las últimas líneas de un archivo. - Consulta la documentación de
tailutilizandoman taily 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:
- ¿Qué información muestra
tailpor defecto cuando no se especifica ninguna opción? - ¿Qué diferencia existe entre
tailyhead? - ¿Para qué sirve la opción
-n? - ¿Qué significa la opción
-fy por qué resulta especialmente útil para trabajar con archivos de registro? - ¿Qué diferencia existe entre
tail -n 10ytail -c 10? - ¿Por qué puede ser necesario utilizar
sudoal consultar determinados archivos del sistema? - ¿Qué ventaja aporta combinar
tailcon una tubería (|)? - ¿Qué ocurre cuando ejecutamos
tail -fy 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.