Linux

¿Qué es el head en Linux y cómo sacarle partido en la terminal?

octubre 26, 2026 Qué es mejor? 8 min read
¿Qué es el head en Linux y cómo sacarle partido en la terminal?

head en 30 segundos: qué hace, cuándo usarlo y para quién

head imprime las primeras líneas (o bytes) de un archivo o de la entrada estándar. Vive en GNU coreutils (versión 9.x en la mayoría de distribuciones Linux actuales) y en las userland BSD de macOS, así que lo encuentras preinstalado en Ubuntu, Debian, Fedora, Linux Mint, Zorin OS y en macOS sin instalar nada. No es interactivo: solo lee y escribe, por lo que encaja perfecto en tuberías y scripts de Bash.

Para la mayoría de la gente que solo quiere abrir un log o un CSV grande, head access.log muestra las 10 primeras líneas y listo: más rápido que cargar el archivo en un editor y sin instalar less. Para quien escribe scripts, head -n 50 entrada.csv es la forma canónica de saltarse la cabecera. Y para administrar servidores remotos vía SSH, head viene en el sistema base: no necesitas instalar less en un contenedor Alpine o en un router con OpenWrt para echar un ojo rápido a /var/log/syslog.

head no es less ni tail: solo muestra el inicio, no permite desplazar, y por defecto son 10 líneas.

Sintaxis y comportamiento por defecto

La sintaxis es head [OPCIÓN]... [ARCHIVO].... Sin opciones ni archivos, head se queda esperando datos por stdin: hay que pulsar Ctrl+D para cerrarlo. Si pasas un guion - como archivo, también lee de la entrada por defecto, lo que permite mezclar entradas en una tubería.

Por defecto imprime las 10 primeras líneas de cada archivo, contadas por saltos de línea \n (cualquier byte 0x0A). Cuando le pasas varios archivos, antepone a cada bloque una cabecera con el formato ==> archivo <== para que sepas de dónde sale cada trozo. Esa cabecera es la que controla -q y -v.

Comportamiento Detalle
Sin archivo o con - Lee de stdin hasta EOF
Una archivo Imprime las 10 primeras líneas, sin cabecera
Varios archivos Antepone ==> archivo <== antes de cada bloque
Conteo por defecto 10 líneas (cualquier implementación como -n 10)
Codificación Cuenta bytes, no caracteres UTF-8

Opciones que de verdad vas a usar: -n, -c, -q y -v

Cuatro opciones cubren el 95 % de los usos reales: -n, -c, -q y -v. El resto (--help, --version, --zero-terminated) son para casos puntuales.

Opción corta Opción larga Qué hace Ejemplo
-n N --lines=N Imprime las N primeras líneas head -n 5 /var/log/syslog
-n -N --lines=-N Imprime todo menos las últimas N líneas (solo GNU coreutils 9.x) head -n -20 access.log
-c N --bytes=N Imprime los N primeros bytes, con sufijos b, K, M, G (base 1024) y KB, MB, GB (base 1000) head -c 1K dump.bin
-q --quiet / --silent No imprime la cabecera ==> archivo <== al procesar varios archivos head -q a.log b.log
-v --verbose Imprime siempre la cabecera, incluso con un solo archivo head -v access.log

Ejemplo con -c y sufijos: head -c 500K archivo.bin lee los primeros 500 KB en base 1024 (512.000 bytes), mientras que head -c 500KB archivo.bin son 500.000 bytes en base 1000. El sufijo b admite un número decimal: head -c 2.5b son 2 bytes y medio.

head dentro de tuberías: combinaciones que ahorran tiempo

Cuatro flujos reales donde head evita instalar nada extra:

  1. Previsualizar una salida larga sin esperar a que termine: ps aux | head te da los primeros 5 procesos en pantalla al instante y Ctrl+C detiene lo que sobra.
  2. Cortar la cabecera de un CSV en head: head -n 1 datos.csv deja solo el encabezado para pipearlo a column -t -s, y formatearlo.
  3. Limitar el tamaño de un volcado JSON enorme: curl -s https://api.ejemplo.com/items | head -c 4K descarga solo los primeros 4 KB para ver la estructura.
  4. Filtrar y recortar en un solo paso: grep -i error /var/log/app.log | head -n 20 muestra los 20 primeros errores sin abrir el log entero.

Ejemplo con cifras: en un log de 480 MB, grep ERROR /var/log/app.log | head -n 100 suele devolver respuesta en menos de 1 segundo porque head corta la tubería en cuanto tiene 100 líneas y grep recibe SIGPIPE y termina.

head sobre varios archivos y cabeceras legibles

Cuando pasas varios archivos, head imprime por cada uno su cabecera ==> archivo <== seguida del contenido. Es útil para inspección manual, pero molesta si vas a pipear la salida a otro comando (por ejemplo cat *.log | head): ahí entra -q.

Con -v fuerzas la cabecera incluso con un solo archivo, lo que sirve para identificar de qué archivo sale cada bloque cuando concatenas con un glob. Y al revés: con xargs procesando lotes como find /var/log -name '*.log' -print0 | xargs -0 head -n 5, el -q deja la salida limpia para grep o awk posteriores.

Ejemplo con cifras: head -v access-2025-11-01.log access-2025-11-02.log imprime dos bloques claramente separados, cada uno con su cabecera. Si en cambio ejecutas cat access-2025-11-01.log access-2025-11-02.log | head -n 10, solo obtienes las primeras 10 líneas del primer fichero concatenado, sin separación visible: ahí es donde -v ayuda a documentar qué se está viendo.

Errores que cuestan tiempo y un apunte de portabilidad

Ventajas de head: preinstalado en cualquier Linux, macOS y WSL; no abre ventana ni entra en modo interactivo como less; cortocircuita la tubería en cuanto tiene lo que pidió, acelerando comandos largos; opciones documentadas en man head y info coreutils 'head invocation'.

Inconvenientes reales: cuenta bytes, no caracteres, así que en un archivo UTF-8 con caracteres multibyte (4 bytes por glifo enCJK) puede cortar a mitad de carácter y dejar la salida ilegible; el -n -N (todo menos las N últimas líneas) no existe en BSD/macOS y dará error o se ignorará según la versión; los sufijos K vs kB se confunden porque uno es base 1024 y el otro base 1000, y un script que asume 1024 en macOS recibe 500.000 bytes en lugar de 512.000.

Cuidado: -n -N es GNU coreutils 9.x; en BSD/macOS usa sed o awk para el mismo efecto.

Sobre las diferencias entre sistemas: GNU coreutils 9.x (incluido en Ubuntu 24.04, Debian 12, Fedora 40 y derivados como Linux Mint 22 o Zorin OS 17) admite -n -N, -c con sufijos b/K/M/G/KB/MB/GB y -q/-v. Las userland BSD/macOS históricamente no aceptaban -n -N ni los sufijos decimales con b. Si tu script debe correr en ambos mundos, compruébalo con man head en el destino antes de desplegarlo. La documentación canónica está en la página de manual de GNU coreutils para head.

Preguntas frecuentes sobre head en Linux

1. ¿Qué hace el comando head en Linux?

Muestra por defecto las primeras 10 líneas de un archivo de texto o de la salida de otro comando. Se usa sobre todo para echar un vistazo rápido al contenido sin abrir el fichero entero: por ejemplo, head -n 5 /var/log/syslog enseña solo las cinco primeras líneas del registro del sistema.

2. ¿Para qué sirve el comando tail y en qué se diferencia de head?

Tail hace lo opuesto: muestra las últimas 10 líneas por defecto, lo que resulta muy útil para seguir logs en tiempo real con tail -f archivo.log. Head lee desde el inicio del fichero, tail desde el final, así que se complementan: uno para inspeccionar el comienzo y otro para ver qué acaba de pasar.

3. ¿Cómo consulto la ayuda oficial del comando head?

Basta con ejecutar man head en la terminal para abrir la página de manual completa, con todas las opciones, la sinopsis y ejemplos. Si prefieres algo más breve, head --help resume las banderas disponibles sin necesidad de abrir el manual completo.

4. ¿Qué es el comando head en Minecraft?

En Minecraft no existe ningún comando llamado head; lo que hay es el ítem "Cabeza de jugador", que se obtiene con /give @p player_head{SkullOwner:"NombreJugador"} y permite conseguir la cabeza de un jugador concreto. Es un objeto puramente cosmético y decorativo dentro del juego, sin relación con la terminal de Linux.

5. ¿Cómo limito el número de líneas que muestra head en Linux?

Usa la opción -n seguida del número de líneas que quieres ver: head -n 20 archivo.txt enseña solo las 20 primeras. Una forma abreviada equivalente es head -20 archivo.txt, que funciona en la mayoría de las distribuciones aunque la versión larga está más documentada.

6. ¿Existe algún comando "ls head" en Linux para ver los primeros archivos?

No existe un comando con ese nombre, pero se consigue el mismo efecto combinando ls con head mediante una tubería: ls -la | head -n 5 muestra los cinco primeros elementos del listado. La idea es que ls genera la salida completa y head la recorta a las líneas iniciales.

7. ¿Cómo puedo ver las últimas líneas de un archivo en Linux?

El comando tail archivo.log muestra por defecto las 10 últimas líneas del fichero indicado. Para seguir un log mientras se actualiza en vivo, añade -f: tail -f /var/log/auth.log se queda imprimiendo las nuevas entradas a medida que se generan.

8. ¿Cómo uso el comando head en un script de Bash?

Dentro de un script lo más cómodo es guardar la salida en una variable: primeras=$(head -n 5 fichero.txt), y luego usarla como quieras con echo o en condicionales. También puedes pasar la salida de otro comando con tubería, por ejemplo ps aux | head -n 3 para quedarte solo con el encabezado y los dos primeros procesos.

Fuentes

  1. Wikipediahead (Unix) – Wikipediaconsultado el 19/10/2026
  2. LinuxfoundationLinux Foundation Reveals 2026 Global Events Program, Advancing …consultado el 19/10/2026
  3. Linuxcapablehead Command in Linux: Preview Files and Pipelines – LinuxCapableconsultado el 19/10/2026
  4. Ss64head Man Page – Linux – SS64consultado el 19/10/2026
  5. Linuxizehead Command in Linux: Print the First N Lines of a Fileconsultado el 19/10/2026