# wget — Dateien und Websites herunterladen

> Praxis-Guide zu wget — Dateidownloads, rekursives Herunterladen, Website-Spiegelung und Authentifizierung auf der Kommandozeile, mit Beispielen.

Source: https://www.jpkc.com/db/cheatsheets/networking/wget/

<!-- PROSE:intro -->
wget ist der verlässliche nicht-interaktive Downloader der Kommandozeile: Mit einem einzigen Befehl holst du einzelne Dateien, rekursive Verzeichnisbäume oder komplette Websites auf dein System – auch auf langsamen oder instabilen Verbindungen. Das Tool unterstützt HTTP, HTTPS und FTP, setzt abgebrochene Downloads nahtlos fort und respektiert Server durch einstellbare Wartezeiten. Dieser Guide zeigt dir die wichtigsten Optionen, vom einfachen Dateidownload bis zur vollständigen Website-Spiegelung.
<!-- PROSE:intro:end -->

## Einfacher Download

`wget <url>` — Lädt eine Datei von der angegebenen URL in das aktuelle Verzeichnis herunter.

```bash
wget https://example.com/file.tar.gz
```

`wget -O <file> <url>` — Lädt die Datei herunter und speichert sie unter einem bestimmten Dateinamen.

```bash
wget -O output.html https://www.example.com
```

`wget -P <directory> <url>` — Lädt die Datei herunter und speichert sie in einem bestimmten Verzeichnis.

```bash
wget -P /tmp/ https://example.com/file.tar.gz
```

`wget -q <url>` — Stiller Modus: unterdrückt Ausgabe-Meldungen.

```bash
wget -q https://example.com/file.tar.gz
```

`wget -i <file>` — Lädt URLs aus einer Textdatei herunter (eine URL pro Zeile).

```bash
wget -i urls.txt
```

## Fortsetzen & Wiederholen

`wget -c <url>` — Setzt einen unterbrochenen Download fort.

```bash
wget -c https://example.com/largefile.iso
```

`wget -t <num> <url>` — Legt die Anzahl der Wiederholungsversuche fest (0 für unbegrenzt).

```bash
wget -t 3 https://example.com/file.tar.gz
```

`wget --timeout=<seconds> <url>` — Setzt den Netzwerk-Timeout in Sekunden.

```bash
wget --timeout=30 https://example.com/file.tar.gz
```

`wget --waitretry=<seconds> <url>` — Wartet zwischen Wiederholungsversuchen, mit zunehmendem Intervall.

```bash
wget --waitretry=5 https://example.com/file.tar.gz
```

## Rekursiver Download

`wget -r <url>` — Lädt rekursiv herunter und folgt Links bis zu 5 Ebenen tief.

```bash
wget -r https://example.com/docs/
```

`wget -r -l <depth> <url>` — Rekursiver Download mit benutzerdefinierter Tiefengrenze.

```bash
wget -r -l 2 https://example.com/docs/
```

`wget -r -np <url>` — Rekursiver Download ohne Aufstieg in übergeordnete Verzeichnisse.

```bash
wget -r -np https://example.com/docs/
```

`wget -r -A "<extensions>" <url>` — Lädt nur Dateien mit bestimmten Erweiterungen herunter.

```bash
wget -r -A "*.pdf,*.doc" https://example.com/docs/
```

`wget -r -R "<extensions>" <url>` — Schließt Dateien mit bestimmten Erweiterungen vom Download aus.

```bash
wget -r -R "*.gif,*.jpg" https://example.com/docs/
```

## Spiegelung

`wget -m <url>` — Spiegelt eine Website (rekursiv, Zeitstempel, unbegrenzte Tiefe).

```bash
wget -m https://example.com/
```

`wget -m -k -p <url>` — Spiegelt eine Website und konvertiert Links für die Offline-Ansicht.

```bash
wget -m -k -p https://example.com/
```

`wget -m -k -p -E <url>` — Spiegelung mit angepassten Dateiendungen (.html für alle Seiten).

```bash
wget -m -k -p -E https://example.com/
```

`wget --mirror --convert-links --wait=2 <url>` — Spiegelt eine Website mit höflichem 2-Sekunden-Delay zwischen den Anfragen.

```bash
wget --mirror --convert-links --wait=2 https://example.com/
```

## Authentifizierung

`wget --user=<user> --password=<pass> <url>` — Lädt mit HTTP-Basic-Authentifizierung herunter.

```bash
wget --user=admin --password=secret https://example.com/private/
```

`wget --header="Authorization: Bearer <token>" <url>` — Lädt mit einem Bearer-Token herunter.

```bash
wget --header="Authorization: Bearer eyJhbGci..." https://api.example.com/data
```

`wget --no-check-certificate <url>` — Überspringt die Prüfung des SSL-Zertifikats (unsicher, nur zum Testen).

```bash
wget --no-check-certificate https://self-signed.example.com/file
```

## Geschwindigkeit & Bandbreite

`wget --limit-rate=<rate> <url>` — Begrenzt die Download-Geschwindigkeit auf einen bestimmten Wert.

```bash
wget --limit-rate=500k https://example.com/largefile.iso
```

`wget -b <url>` — Lädt im Hintergrund herunter. Ausgabe geht in wget-log.

```bash
wget -b https://example.com/largefile.iso
```

`wget --wait=<seconds> -r <url>` — Wartet zwischen Downloads bei rekursivem Herunterladen.

```bash
wget --wait=2 -r https://example.com/docs/
```

`wget --random-wait -r <url>` — Wartet eine zufällige Zeit (0,5x bis 1,5x --wait) zwischen Anfragen.

```bash
wget --wait=3 --random-wait -r https://example.com/
```

## Ausgabe-Optionen

`wget -O - <url>` — Lädt herunter und gibt auf stdout aus statt in eine Datei.

```bash
wget -O - https://api.example.com/data
```

`wget --spider <url>` — Prüft, ob eine URL erreichbar ist, ohne herunterzuladen (wie ein Ping).

```bash
wget --spider https://www.example.com
```

`wget -S <url>` — Gibt die Server-Response-Header aus.

```bash
wget -S https://www.example.com
```

`wget --content-disposition <url>` — Nutzt den vom Server vorgeschlagenen Dateinamen aus dem Content-Disposition-Header.

```bash
wget --content-disposition https://example.com/download?id=123
```

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

wget gehört zu den Klassikern im Unix-Werkzeugkoffer: Wo cURL glänzt, wenn es ums Senden und Empfangen von API-Daten geht, ist wget unschlagbar für robuste Batch-Downloads, Website-Spiegelungen und automatisierte Skripte. Wer regelmäßig große Datenmengen von Servern zieht, sollte `--limit-rate`, `--wait` und `-c` zu seinen ersten Handgriffen machen.

## Weiterführende Links

- [GNU Wget – offizielle Dokumentation](https://www.gnu.org/software/wget/manual/wget.html) – vollständige Referenz aller Optionen (englisch)
- [Wget – Wikipedia](https://de.wikipedia.org/wiki/Wget) – Hintergrund und Geschichte
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [curl](https://www.jpkc.com/db/cheatsheets/networking/curl/) – HTTP-Requests, API-Calls und Dateiübertragungen auf der Kommandozeile
- [aria2](https://www.jpkc.com/db/cheatsheets/networking/aria2/) – schneller Paralleldownloader für große Dateien
- [httpie](https://www.jpkc.com/db/cheatsheets/networking/httpie/) – moderner, benutzerfreundlicher HTTP-Client

