El comando cat es uno de los comandos más utilizados para mostrar el contenido de un archivo en Linux. Pero es posible que no siempre desee mostrar todas las líneas de un archivo grande. El comando Tail ayuda en tal escenario.
¿Qué es el Comando de Cola?
El comando tail, como sugiere su nombre, genera las últimas partes de un solo archivo o varios archivos. De forma predeterminada, el comando tail imprime las últimas diez líneas de los archivos de entrada. El comando tail también se usa para leer archivos de registro en tiempo real.
La sintaxis del comando tail es:
tail [options] [files]
5 ejemplos prácticos de Tail command en Linux
Aprendamos a usar el comando tail en Linux con algunos ejemplos prácticos. Usaré este archivo de texto en este tutorial:
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Puede descargar el archivo de muestra de nuestro repositorio de GitHub y seguir el tutorial mientras lo practica al mismo tiempo.
Si usa el comando tail sin ninguna opción, imprimirá las últimas 10 líneas. Ese es el comportamiento predeterminado del comando tail.
tail agatha.txt
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Si el archivo tiene menos de diez líneas, solo mostrará las líneas disponibles. Si las últimas líneas están en blanco, aún se contarán como líneas válidas.
Pero no tiene que contentarse con el uso predeterminado del comando de cola. Hay algo mas. Veamos el uso más común de los comandos de cola uno por uno.
1. Imprime las últimas N líneas con el comando tail
Para ver las últimas N líneas, en lugar de las 10 predeterminadas, puede usar el comando tail de la siguiente manera:
tail -n N <filename>
Por ejemplo, si desea ver las últimas 5 líneas con el comando de cola en nuestro archivo de ejemplo, puede usarlo así:
tail -n 5 agatha.txt
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Sugerencia:también puede simplemente usar tail -N en lugar de tail -n N para mostrar las últimas N líneas de un archivo.
2. Imprime todas las líneas comenzando con el número de línea N
Si desea ver todas las líneas a partir de la línea número N, puede usar la opción + aquí.
tail -n +N <filename>
En nuestro archivo de muestra, si desea ver todas las líneas a partir de la línea número 7, puede usarlo de esta manera:
tail -n +7 agatha.txt
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
3. Usar varios archivos con el comando tail
El comando tail le permite usar más de un archivo al mismo tiempo. Todas las opciones de comando de cola estándar son aplicables a varios archivos.
tail -n N <file1> <file2> <file3>
La salida se combina para todos los archivos y, de forma predeterminada, el nombre del archivo se muestra en líneas que comienzan con "==>".
Por ejemplo, si desea ver las últimas tres líneas de los archivos sherlock.txt y agatha.txt, sería así:
tail -n3 sherlock.txt agatha.txt
==> sherlock.txt <==
The Adventure of the Noble Bachelor
The Adventure of the Beryl Coronet
The Adventure of the Copper Beeches
==> agatha.txt <==
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Sugerencia:puede eliminar los nombres de los archivos de la salida usando el modo silencioso con la opción -q.
4. Monitoree archivos en tiempo real con el comando tail [Muy útil para monitorear registros]
Supongamos que tiene un archivo y se le agrega nuevo contenido. El comando tail le permite mostrar todas las líneas nuevas a medida que se agregan al archivo.
Para esto, puedes usar la opción -f.
tail -f <log-file>
El comando mostrará primero las últimas 10 líneas de los archivos y luego actualizará la salida a medida que se agreguen nuevas líneas al archivo.
Esto se usa ampliamente para ver archivos de registro en tiempo real. Este es quizás el uso más práctico del comando de cola.
Sugerencia:si usa la opción -F en lugar de -f, el comando tail esperará a que se cree el archivo de entrada (si aún no existe) y luego mostrará el contenido del archivo en tiempo real.
5. Usando el comando tail con tuberías
El comando tail se puede usar en conjugación con otros comandos que usan barras verticales.
Por ejemplo, si tiene demasiados archivos en un directorio y solo quiere ver los últimos 3 archivos modificados, puede usarlo de la siguiente manera:
ls -ltr | tail -n3
En el comando anterior, ls -lrt enumera todos los archivos en orden cronológico inverso. Y luego el comando tail analiza aún más esta salida y muestra solo las últimas tres líneas de la salida del comando ls y así obtenemos la lista de los últimos tres archivos modificados.
Sugerencia adicional:muestra la salida del comando tail con números de línea
Los números de línea ayudan mucho a comprender y analizar la salida. Suponga que muestra las últimas 20 líneas de un archivo, pero también desea ver sus números de línea para poder ver el total de líneas en el archivo.
Desafortunadamente, no hay una opción integrada para mostrar la salida del comando de cola con números.
Pero eso no significa que no pueda mostrar los números de línea con el comando de cola. Para este propósito, puede usar el poder de las tuberías. Acabas de ver en la sección anterior que los comandos de cola se pueden usar con tuberías. ¿Por qué no usarlo aquí?
nl es la forma de mostrar el contenido de un archivo con números de línea. Si lo combina con el comando de cola usando tubería, puede mostrar la salida del comando de cola con números de línea.
nl <filename> | tail -3
Espero que encuentre útiles los ejemplos de comandos de cola. Recomiendo leer sobre el comando principal también. Si tiene alguna sugerencia o pregunta, compártala en la sección de comentarios a continuación.