El comando tail muestra la última parte (10 líneas por defecto) de uno o más archivos o datos canalizados. También se puede usar para monitorear los cambios de archivos en tiempo real.
Uno de los usos más comunes del comando tail es observar y analizar registros y otros archivos que cambian con el tiempo, generalmente combinado con otras herramientas como grep.
En este tutorial, le mostraremos cómo usar el comando tail de Linux a través de ejemplos prácticos y explicaciones detalladas de las opciones tail más comunes.
Sintaxis del comando de cola #
Antes de entrar en cómo usar el comando tail, comencemos por revisar la sintaxis básica.
Las expresiones de comando de cola toman la siguiente forma:
tail [OPTION]... [FILE]...
OPTION
- Opciones de cola. Repasaremos las opciones más comunes en las siguientes secciones.FILE
- Cero o más nombres de archivos de entrada. Si no se especifica ARCHIVO, o cuando ARCHIVO es-
, tail leerá la entrada estándar.
Cómo usar el comando de cola #
En su forma más simple, cuando se usa sin ninguna opción, el comando tail mostrará las últimas 10 líneas.
tail filename.txt
Cómo mostrar un número específico de líneas #
Usa el -n
(--lines
) opción para especificar el número de líneas que se mostrarán:
tail -n <NUMBER> filename.txt
También puede omitir la letra n
y use solo el guión (-
) y el número (sin espacios entre ellos).
Para mostrar las últimas 50 líneas de un archivo llamado filename.txt
usarías:
tail -n 50 filename.txt
El siguiente ejemplo mostrará el mismo resultado que los comandos anteriores:
tail -50 filename.txt
Cómo mostrar un número específico de bytes #
Para mostrar un número específico de bytes use -c
(--bytes
) opción.
tail -c <NUMBER> filename.txt
Por ejemplo, para mostrar los últimos 500 bytes de datos del archivo llamado filename.txt
usarías:
tail -c 500 filename.txt
También puede usar un sufijo multiplicador después del número para especificar el número de bytes que se mostrarán. b
lo multiplica por 512, kB
lo multiplica por 1000, K
lo multiplica por 1024, MB
lo multiplica por 1000000, M
lo multiplica por 1048576, y así sucesivamente.
El siguiente comando mostrará los últimos dos kilobytes (2048) del archivo filename.txt
:
tail -c 2k filename.txt
Cómo observar cambios en un archivo #
Para monitorear un archivo en busca de cambios, use -f
(--follow
) opción:
tail -f filename.txt
Esta opción es particularmente útil para monitorear archivos de registro. Por ejemplo, para mostrar las últimas 10 líneas del /var/log/nginx/error.log
y controle el archivo en busca de actualizaciones que usaría:
tail -f /var/log/nginx/error.log
Para interrumpir el comando tail mientras mira un archivo, presione Ctrl+C
.
Para seguir monitoreando el archivo cuando se vuelve a crear, use -F
opción.
tail -F filename.txt
Esta opción es útil en situaciones en las que el comando tail sigue un archivo de registro que gira. Cuando se usa con -F
opción, el comando tail volverá a abrir el archivo tan pronto como vuelva a estar disponible.
Cómo mostrar varios archivos #
Si se proporcionan varios archivos como entrada para el comando tail, se mostrarán las últimas diez líneas de cada archivo.
tail filename1.txt filename2.txt
Puede usar las mismas opciones que cuando muestra un solo archivo.
Este ejemplo muestra las últimas 20 líneas de los archivos filename1.txt
y filename2.txt
:
tail -n 20 filename1.txt filename2.txt
Cómo usar Tail con otros comandos #
El comando tail se puede usar en combinación con otros comandos al redirigir la salida estándar desde/hacia otras utilidades usando tuberías.
Por ejemplo, para monitorear el archivo de registro de acceso de Apache y solo mostrar aquellas líneas que contienen la dirección IP 192.168.42.12
usarías:
tail -f /var/log/apache2/access.log | grep 192.168.42.12
El siguiente ps
El comando mostrará los diez principales procesos en ejecución ordenados por uso de CPU:
ps aux | sort -nk +3 | tail -5
Conclusión #
A estas alturas ya debería tener una buena comprensión de cómo usar el comando tail de Linux. Es complementario al comando head, que imprime las primeras líneas de un archivo en el terminal.