Comandos LinuxExplicados en español
/
Ficha32 / 104
Categoría
Texto
Ejemplos
6
Ver también
tail · less · cat · grep

head

head (cabecera)

Muestra las primeras líneas de un archivo.

Imprime solo el principio de un archivo: por defecto las primeras 10 líneas. Lo usas para echarle un vistazo rápido a un archivo largo o a un log, sin abrirlo entero y sin que la terminal se te llene de texto.

Sintaxishead [opciones] [ARCHIVO...]
§ 1

Despiece

6 ejemplos
Ver las primeras 10 líneas

Ver las primeras 10 líneas

2 piezas
Lámina01 / 06
Comandohead notas.txt
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1headComandoEl comando que muestra el principio de un archivo.
2notas.txtArgumentoEl archivo que quieres revisar.
Resultado

Aparecen las primeras 10 líneas de notas.txt. Si el archivo tiene menos, se muestran todas y ya.

Ver las primeras 20 líneas

4 piezas
Lámina02 / 06
Comandohead -n 20 notas.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1headComandoEl comando que muestra el principio de un archivo.
2-nOpciónLines: dice cuántas líneas quieres.
320ValorLa cantidad de líneas, en este caso 20 en vez de las 10 de siempre.
4notas.txtArgumentoEl archivo que quieres revisar.
Resultado

Salen las primeras 20 líneas. También funciona la forma corta head -20 notas.txt, que es lo mismo.

Ver la firma de una imagen

7 piezas
Lámina03 / 06
Comandohead -c 8 foto.png | od -c
Piezas7
Escala1:1
N.ºPiezaTipoQué hace
1headComandoEl comando que muestra el principio de un archivo.
2-cOpciónBytes: cuenta en bytes en vez de en líneas. Útil con archivos que no son de texto.
38ValorLos primeros 8 bytes, que en un PNG son la firma del formato.
4foto.pngArgumentoEl archivo binario del que quieres ver el arranque.
5|OperadorPipe: manda esos bytes a od en vez de soltarlos en la terminal.
6odComandoMuestra los bytes de forma legible.
7-cOpciónEnseña cada byte como carácter o como código de escape.
Resultado

Sale algo como 211 P N G \r \n 032 \n. Si ves las letras PNG, el archivo sí es una imagen PNG aunque tenga otra extensión.

Ver varios archivos con su nombre arriba

5 piezas
Lámina04 / 06
Comandohead -n 2 a.txt b.txt
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1headComandoEl comando que muestra el principio de un archivo.
2-nOpciónLines: dice cuántas líneas de cada archivo.
32ValorDos líneas de cada archivo.
4a.txtArgumentoEl primer archivo.
5b.txtArgumentoEl segundo archivo.
Resultado

Antes de cada bloque sale una etiqueta con el nombre, como ==> a.txt <==. Así sabes de qué archivo es cada pedazo. Con -q quitas esas etiquetas.

Ver todo menos las últimas líneas

4 piezas
Lámina05 / 06
Comandohead -n -3 lista.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1headComandoEl comando que muestra el principio de un archivo.
2-nOpciónLines: también acepta números negativos, que cambian el significado.
3-3ValorEl signo menos indica que quitas 3 líneas, y son del final.
4lista.txtArgumentoEl archivo del que quieres quitar las últimas líneas.
Resultado

Muestra el archivo completo menos las 3 últimas líneas. Sirve para comparar contra una lista completa o para quitar el pie de página que le ponen a los CSV al exportarlos.

Ver las primeras líneas de la salida de otro comando

6 piezas
Lámina06 / 06
Comandops aux | head -n 5
Piezas6
Escala1:1
N.ºPiezaTipoQué hace
1psComandoLista los procesos que están corriendo.
2auxOpciónMuestra todos los procesos con columnas legibles.
3|OperadorPipe: manda la salida de ps a la entrada de head.
4headComandoEl comando que muestra el principio de un archivo, aquí de lo que le llegue por el pipe.
5-nOpciónLines: cuántas líneas tomar.
65ValorCinco líneas: la primera es el encabezado de columnas y las siguientes son procesos.
Resultado

Ves el encabezado de columnas y los primeros 4 procesos, sin llenar la pantalla con la lista completa.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-n--lines=NÚMEROMuestra las primeras NÚMERO líneas en vez de 10. Con número negativo, como -n -3, quita las últimas 3 líneas.
-c--bytes=NÚMEROMuestra los primeros NÚMERO bytes en vez de líneas. Sirve sobre todo con archivos binarios.
-q--quietNo pone el nombre del archivo arriba cuando le pasas más de uno. También existe como --silent.
-v--verboseSiempre pone el nombre del archivo arriba, aunque le pases un solo archivo.
-z--zero-terminatedToma el carácter NUL como fin de línea en vez del salto de línea. Para archivos que no usan \n para separarlas.
§ 3

Fallas comunes

FallaRemedio
Escribir head -n -20 esperando ver las últimas 20 líneas.El número negativo en head quita líneas del final: head -n -20 muestra todo menos las últimas 20. Para ver el final de un archivo usa tail -n 20.
Contar bytes como líneas y extrañar que head -c 100 corte a media palabra.-n cuenta líneas completas y -c cuenta bytes. Un byte no es siempre un carácter: los acentos y los emojis ocupan más de un byte. Para leer texto usa -n.
head -n con un valor que no es número, como head -n notas.txt.head responde head: invalid number of lines: 'notas.txt'. El número va después de -n y antes del nombre del archivo.
Pasarle una carpeta a head esperando que liste lo que tiene adentro.head: error reading 'fotos': Is a directory. head solo lee archivos; para ver el contenido de una carpeta usa ls fotos.
§ 4

Preguntas frecuentes

¿Cómo veo las primeras 10 líneas de un archivo?
Con head archivo. Por defecto imprime 10 líneas. Para cambiar la cantidad usa -n, por ejemplo head -n 25 notas.txt para las primeras 25.
¿Cuál es la diferencia entre head y tail?
head muestra el principio del archivo y tail el final. Los dos usan 10 líneas por omisión, así que head -n 5 te da el encabezado de un archivo y tail -n 5 las últimas cinco.
¿Cómo quito la primera línea de un archivo?
head no puede empezar a leer en la línea 2, pero tail sí: tail -n +2 archivo salta la primera línea y te muestra el resto. Es la forma rápida de quitarle el encabezado a un CSV.
¿Qué significa head -c 100?
Muestra los primeros 100 bytes del archivo en vez de las primeras 10 líneas. Se usa sobre todo con binarios, como una imagen o un archivo comprimido, para ver su encabezado.
¿Cómo veo varios archivos a la vez o la salida de otro comando?
Pásale todos los archivos a head: head -n 2 a.txt b.txt, y antes de cada bloque sale una etiqueta con el nombre del archivo para que no se mezclen; con -q las quita. También funciona al final de un pipe, como ps aux | head -n 5, porque no necesita nombre de archivo cuando la entrada le llega por el pipe.
§ 5

Ver también