Der Befehl head gibt die ersten Zeilen einer Datei auf der Standardausgabe aus. In der Voreinstellung sind das die ersten 10 Zeilen — mit -n lässt sich die Anzahl frei wählen, mit -c werden statt Zeilen Bytes ausgegeben. head ist das Standardwerkzeug, um schnell in eine Datei oder einen Datenstrom hineinzuschauen, ohne sie ganz zu öffnen.

Was head macht

Ohne Argumente liest head von einer Datei (oder von stdin) und gibt die ersten 10 Zeilen aus. Das Verhalten lässt sich über zwei Achsen steuern:

  • Mit -n N die Anzahl der Zeilen ändern.
  • Mit -c N statt Zeilen die Anzahl der Bytes ausgeben.
Bash Erste 10 Zeilen einer Datei
head /etc/passwd
Output
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

head liest sequentiell von oben — bei riesigen Dateien stoppt der Befehl, sobald genug gelesen wurde, und ist damit deutlich günstiger als cat.

Optionen

OptionWirkung
-n NGibt die ersten N Zeilen aus (statt der voreingestellten 10)
-n -NGibt alle Zeilen außer den letzten N aus
-c NGibt die ersten N Bytes aus (statt Zeilen)
-c -NGibt alle Bytes außer den letzten N aus
-qQuiet — unterdrückt die Header bei mehreren Dateien
-vVerbose — gibt immer einen Header aus, auch bei einer einzelnen Datei

Die Zahl bei -n und -c akzeptiert auch Suffixe wie K, M, G für Kilo-, Mega-, Gigabyte (bei GNU coreutils).

Bash Erste 3 Zeilen, dann erste 100 Bytes
head -n 3 /etc/passwd
head -c 100 /etc/passwd

Mehrere Dateien

Übergibst du head mehrere Dateien, gibt es zwischen den Ausgaben einen Header in der Form ==> dateiname <== aus. Mit -q lässt sich das unterdrücken, mit -v erzwingen — auch bei einer einzelnen Datei.

Bash Mehrere Logs anschauen
head -n 2 access.log error.log
Output
==> access.log <==
127.0.0.1 - - [01/May/2026:10:01:23] "GET / HTTP/1.1" 200 1234
127.0.0.1 - - [01/May/2026:10:01:24] "GET /style.css HTTP/1.1" 200 567

==> error.log <==
[Fri May 01 10:01:23 2026] [error] File not found: /favicon.ico
[Fri May 01 10:02:01 2026] [warn] Slow query: 2.1s

Negativ-Modus mit Minus

Eine weniger bekannte, aber praktische Variante: Wenn du -n oder -c einen negativen Wert mitgibst, gibt head alles außer den letzten N Zeilen (bzw. Bytes) aus.

Bash Alles außer den letzten 5 Zeilen
head -n -5 datei.txt

Das ist das Spiegelbild von tail -n +N und nützlich, wenn du z. B. eine Datei ohne ihren Footer weiterverarbeiten willst — etwa bei generierten Reports mit fester Schluss-Signatur.

Praxis-Patterns

Ein paar Standardanwendungen, die im Alltag immer wieder auftauchen:

  • Logs anpeekenhead -n 50 /var/log/syslog liefert den Anfang einer Logdatei, ohne sie ganz zu laden.
  • CSV-Header lesenhead -1 daten.csv zeigt nur die Spaltenüberschriften.
  • Shebang prüfenhead -n 1 script.sh zeigt die erste Zeile, also typischerweise #!/bin/bash oder Ähnliches.
  • Pipe-Inspektion./script.sh | head zeigt nur die ersten Zeilen einer langen Ausgabe; head schließt die Pipe danach selbständig.
  • Große Dumps anschauenhead -c 1K dump.bin zeigt einen handlichen Anfang einer Binärdatei.
Bash CSV-Header und erste Datenzeile
head -n 2 verkaeufe.csv
Output
datum,produkt,menge,preis
2026-05-01,Tee,3,12.90

Mit -n 2 siehst du die Kopfzeile und gleich eine echte Datenzeile darunter — gut, um beim Verarbeiten zu prüfen, ob Spaltenanzahl und Trennzeichen zur Annahme passen, bevor du Pipelines mit awk oder cut baust.

Besonderheiten

head -c kann mitten im Zeichen abschneiden

Mit -c zählt head Bytes, keine Zeichen. Bei UTF-8-Dateien können Multi-Byte-Zeichen dadurch mitten in der Sequenz abgeschnitten werden — die Ausgabe enthält dann ein ungültiges Byte am Ende. Wenn du auf Zeichenebene arbeiten willst, ist cut -c (mit Vorsicht) oder ein Locale-bewusstes Tool wie awk die bessere Wahl.

head -n -N ist GNU-Spezifisch

Der Negativ-Modus (head -n -5) stammt aus den GNU coreutils und war lange Linux-exklusiv. BSD- und macOS-Varianten haben das Feature erst spät übernommen — auf älteren Systemen oder im POSIX-Modus ist es nicht garantiert. Im Zweifel mit tac und tail simulieren oder explizit GNU ghead (über Homebrew) verwenden.

head schließt früh — perfekt für Pipes

Sobald head genug gelesen hat, schließt es seinen stdin und beendet sich. Das schickt dem vorgeschalteten Prozess in der Pipe ein SIGPIPE, was den ihn meist sofort beendet. Praktischer Effekt: find / | head durchsucht nicht das ganze Dateisystem, sondern bricht ab, sobald 10 Treffer da sind.

head -n 5 vs. sed -n 1,5p

Funktional identisch — beide geben die ersten 5 Zeilen aus. head ist kürzer, schneller und beendet sich früh. sed -n 1,5p liest hingegen die gesamte Datei bis zum Ende durch, weil sed nicht weiß, dass keine weiteren Treffer mehr kommen. Bei großen Dateien ein spürbarer Unterschied.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Textverarbeitung

Zur Übersicht