wget und curl laden Dateien von URLs herunter - unverzichtbar für die Server-Administration. Beide haben ihre Stärken.
wget - Der Download-Spezialist
wget ist für Downloads optimiert und kann ganze Websites spiegeln.
Einfacher Download
wget https://example.com/datei.zipMit anderem Dateinamen speichern
wget -O mein-name.zip https://example.com/datei.zipIn bestimmtes Verzeichnis
wget -P /tmp/ https://example.com/datei.zipDownload fortsetzen
Bei Abbruch:
wget -c https://example.com/große-datei.zipIm Hintergrund
wget -b https://example.com/datei.zip
# Log in wget-log
tail -f wget-logMehrere Dateien
Aus einer Datei mit URLs:
wget -i urls.txtGeschwindigkeit begrenzen
wget --limit-rate=500k https://example.com/datei.zipStille Ausgabe
wget -q https://example.com/datei.zipMit Authentifizierung
wget --user=admin --password=geheim https://example.com/datei.zipWebsite spiegeln
wget --mirror --convert-links --page-requisites https://example.com/curl - Der Allrounder
curl ist vielseitiger und unterstützt mehr Protokolle.
Einfacher Download
curl -O https://example.com/datei.zipWichtig: -O (großes O) ist nötig, sonst wird auf stdout ausgegeben.
Mit anderem Namen
curl -o mein-name.zip https://example.com/datei.zipInhalt direkt ausgeben
curl https://example.com/info.txtDownload fortsetzen
curl -C - -O https://example.com/datei.zipStille Ausgabe
curl -s https://example.com/datei.zip -o datei.zipMit Fortschrittsbalken
curl -# -O https://example.com/datei.zipRedirects folgen
curl -L -O https://example.com/downloadMit Authentifizierung
curl -u admin:geheim https://example.com/datei.zip -OHeader anzeigen
curl -I https://example.com/Custom Header senden
curl -H "Authorization: Bearer TOKEN" https://api.example.com/datacurl für APIs
curl glänzt bei API-Anfragen:
GET-Request
curl https://api.example.com/usersPOST-Request
curl -X POST -d "name=Max&email=max@example.com" https://api.example.com/usersJSON senden
curl -X POST \
-H "Content-Type: application/json" \
-d '{"name":"Max","email":"max@example.com"}' \
https://api.example.com/usersResponse formatiert (mit jq)
curl -s https://api.example.com/users | jq .wget vs. curl Vergleich
| Feature | wget | curl | |---------|------|------| | Rekursiver Download | Ja | Nein | | Website spiegeln | Ja | Nein | | API-Anfragen | Eingeschränkt | Exzellent | | Protokolle | HTTP(S), FTP | HTTP(S), FTP, SFTP, SCP, + viele mehr | | Im Hintergrund | -b | Nein (mit &) | | Download fortsetzen | -c | -C - | | Standardmäßig installiert | Meist | Meist |
Praktische Beispiele
Software installieren
# wget
wget https://example.com/software.tar.gz
tar -xzf software.tar.gz
# curl
curl -LO https://example.com/software.tar.gz
tar -xzf software.tar.gzSkript direkt ausführen
Vorsicht: Nur von vertrauenswürdigen Quellen!
# bash
curl -sSL https://example.com/install.sh | bash
# oder mit wget
wget -qO- https://example.com/install.sh | bashEigene IP ermitteln
curl ifconfig.me
# oder
wget -qO- ifconfig.meDocker installieren
curl -fsSL https://get.docker.com | bashSSL-Zertifikat prüfen
curl -vI https://example.com 2>&1 | grep -A5 "Server certificate"Download mit Proxy
# wget
wget -e http_proxy=proxy.example.com:8080 https://example.com/datei.zip
# curl
curl -x proxy.example.com:8080 -O https://example.com/datei.zipGroße Datei mit Fortschritt
wget --progress=bar:force https://example.com/groß.iso
curl --progress-bar -O https://example.com/groß.isoFehlerbehebung
SSL-Fehler umgehen (nur zum Testen!)
wget --no-check-certificate https://...
curl -k https://...Timeout setzen
wget --timeout=30 https://...
curl --connect-timeout 30 https://...User-Agent setzen
wget --user-agent="Mozilla/5.0" https://...
curl -A "Mozilla/5.0" https://...Fazit
wget für Downloads, besonders rekursive. curl für APIs und vielseitige Anfragen. Beide gehören zur Grundausstattung jedes Linux-Administrators.