# head — Den Anfang von Dateien anzeigen

> Praxis-Guide zu head: die ersten Zeilen oder Bytes einer Datei anzeigen, Kopfzeilen prüfen und Ausgaben in Pipelines begrenzen.

Source: https://www.jpkc.com/db/cheatsheets/files-text/head/

<!-- PROSE:intro -->
head zeigt dir den Anfang einer Datei – standardmäßig die ersten 10 Zeilen. Damit wirfst du blitzschnell einen Blick in große Dateien, prüfst die Kopfzeile einer CSV oder begrenzt in Pipelines eine Ausgabe auf die ersten Treffer. Über `-n` bestimmst du die Zeilenzahl, mit `-c` arbeitest du byteweise. Praktisch: GNU head versteht auch negative Angaben wie `-n -3` (alles bis auf die letzten drei Zeilen). Dieser Guide zeigt dir die gängigen Optionen und ihre typischen Pipeline-Partner.
<!-- PROSE:intro:end -->

## Grundlagen

`head <file>` — Die ersten 10 Zeilen einer Datei anzeigen (Standard).

```bash
head access.log
```

`head -n <count> <file>` — Die ersten N Zeilen einer Datei anzeigen.

```bash
head -n 20 access.log
```

`head -<count> <file>` — Kurzform für -n. Die ersten N Zeilen anzeigen.

```bash
head -5 data.csv
```

`head -n -<count> <file>` — Alle Zeilen außer den letzten N anzeigen.

```bash
head -n -3 data.txt
```

## Byte-Modus

`head -c <bytes> <file>` — Die ersten N Bytes einer Datei statt Zeilen anzeigen.

```bash
head -c 100 binary.dat
```

`head -c <size>K <file>` — Die ersten N Kilobytes anzeigen. Unterstützt die Suffixe K, M, G.

```bash
head -c 4K large-file.bin
```

`head -c -<bytes> <file>` — Alle Bytes außer den letzten N anzeigen.

```bash
head -c -10 data.bin
```

## Mehrere Dateien

`head <file1> <file2>` — Die ersten 10 Zeilen jeder Datei mit Dateinamen-Kopfzeilen anzeigen.

```bash
head error.log access.log
```

`head -n <count> <file1> <file2>` — Die ersten N Zeilen mehrerer Dateien anzeigen.

```bash
head -n 5 *.log
```

`head -q <file1> <file2>` — Stiller Modus. Dateinamen-Kopfzeilen bei mehreren Dateien unterdrücken.

```bash
head -q -n 1 *.csv
```

`head -v <file>` — Ausführlicher Modus. Immer eine Dateinamen-Kopfzeile anzeigen, auch bei einer einzelnen Datei.

```bash
head -v -n 5 data.txt
```

## Pipelines

`<command> | head` — Nur die ersten 10 Zeilen einer Befehlsausgabe anzeigen.

```bash
ps aux | head
```

`<command> | head -n <count>` — Die Befehlsausgabe auf die ersten N Zeilen begrenzen.

```bash
find / -name '*.conf' 2>/dev/null | head -n 20
```

`<command> | head -n 1` — Nur die erste Zeile der Ausgabe holen (z. B. Kopfzeile oder erstes Ergebnis).

```bash
docker ps | head -n 1
```

`sort <file> | head -n <count>` — Die ersten N Einträge nach dem Sortieren anzeigen (z. B. die kleinsten Werte).

```bash
sort -n scores.txt | head -n 5
```

`<command> | head -c <bytes>` — Die Ausgabe einer Pipe auf eine bestimmte Byte-Anzahl begrenzen.

```bash
cat /dev/urandom | head -c 32 | base64
```

## Typische Muster

`head -n 1 <file>` — Nur die Kopfzeile einer CSV- oder TSV-Datei anzeigen.

```bash
head -n 1 data.csv
```

`head -n 1 <file> && tail -n +2 <file> | sort` — Kopfzeile ausgeben, dann die restlichen Datenzeilen sortieren.

```bash
head -n 1 data.csv && tail -n +2 data.csv | sort -t',' -k2
```

`head -c 4 <file> | xxd` — Die Magic Bytes (Dateisignatur) einer Binärdatei prüfen.

```bash
head -c 4 image.png | xxd
```

`for f in *.log; do echo "=== $f ==="; head -n 3 "$f"; done` — Die ersten 3 Zeilen jeder Logdatei mit eigenen Überschriften anzeigen.

```bash
for f in *.log; do echo "=== $f ==="; head -n 3 "$f"; done
```

<!-- PROSE:outro -->
## Fazit

head ist das natürliche Gegenstück zu `tail` und gehört zu den schnellsten Wegen, eine Datei anzusehen, ohne sie komplett zu laden – ideal auch für riesige Dateien, da head nach genug Zeilen einfach aufhört zu lesen. Beachte, dass die negativen Angaben (`head -n -3`, `head -c -10`) eine GNU-Erweiterung sind und auf BSD oder macOS nicht funktionieren. Für das Herausschneiden eines mittleren Zeilenbereichs kombinierst du head mit `tail`, etwa `head -n 20 | tail -n 5`. Mit `-c` liest head auch Binärdaten – aber Vorsicht beim Mischen von `-n` und `-c`, denn die beiden schließen sich gegenseitig aus.

## Weiterführende Links

- [Wikipedia: head (Unix)](https://de.wikipedia.org/wiki/Head_(Unix)) – Überblick und Funktionsweise des Kommandos
- [ubuntuusers-Wiki: head](https://wiki.ubuntuusers.de/head/) – deutschsprachige Einführung mit Beispielen
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [tail](https://www.jpkc.com/db/cheatsheets/files-text/tail/) – das Ende von Dateien anzeigen und Logs verfolgen
- [less](https://www.jpkc.com/db/cheatsheets/files-text/less/) – Dateien seitenweise durchblättern
- [sed](https://www.jpkc.com/db/cheatsheets/files-text/sed/) – Textströme zeilenweise bearbeiten und filtern

