Este artículo fue publicado originalmente en go2linux.org el 5 de mayo de 2007. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.

Este comando es el opuesto de head — en lugar de mostrar el comienzo de un archivo, muestra el final.

También tiene una característica muy práctica: si se usa con la opción -f, el comando sigue el archivo y muestra las nuevas líneas a medida que se van agregando. Esto es extremadamente útil cuando estás depurando y monitoreando archivos en el directorio /var/log.

Uso

tail [opciones] [lista-de-archivos]

Opciones

-c=[+]n[u] tail cuenta bytes en lugar de líneas. Muestra los últimos n bytes especificados en la opción n. El parámetro [u] es opcional e indica la unidad:

  • b = bytes
  • k = kilobytes
  • m = megabytes

Si agregas el signo + antes de n, tail cuenta desde el inicio en lugar del final, mostrando desde la línea +n en adelante.

-f Después de mostrar la última línea del archivo, tail permanece abierto y espera nuevas líneas, mostrándolas en cuanto se escriben. Se puede especificar más de un archivo en [lista-de-archivos], y tail indicará de cuál archivo proviene cada nueva línea.

-n [+]n[u] Es la opción por defecto. Funciona como -c pero cuenta líneas en lugar de bytes. También se puede especificar el parámetro [u] para unidades y usar el signo + para contar desde el inicio del archivo en lugar del final.

La página del manual

TAIL(1)                                                                TAIL(1)

NAME
       tail - output the last part of files

SYNOPSIS
       tail [OPTION]... [FILE]...

DESCRIPTION
       Print the last 10 lines of each FILE to standard output. With more than
       one FILE, precede each with a header giving the file name. With no FILE,
       or when FILE is -, read standard input.

       -c, --bytes=N
              output the last N bytes; alternatively, use +N to output bytes
              starting with the Nth of each file

       -f, --follow[={name|descriptor}]
              output appended data as the file grows; -f, --follow, and
              --follow=descriptor are equivalent

       -n, --lines=N
              output the last N lines, instead of the last 10; or use +N to
              output lines starting with the Nth

       --pid=PID
              with -f, terminate after process ID, PID dies

       -q, --quiet, --silent
              never output headers giving file names

       -s, --sleep-interval=S
              with -f, sleep for approximately S seconds (default 1.0) between
              iterations

       -v, --verbose
              always output headers giving file names