zstd — Schnelle Kompression mit Zstandard
Praxis-Guide zu zstd (Zstandard) — schnelle Kompression mit hervorragendem Verhältnis von Tempo und Größe, Multi-Threading und tar-Integration.
zstd (Zstandard) ist ein modernes Kompressionswerkzeug von Meta, das ein bemerkenswertes Gleichgewicht aus Geschwindigkeit und Kompressionsrate trifft – bei Standardstufe 3 packt es nahezu in Echtzeit, auf höheren Stufen erreicht es Raten auf xz-Niveau. Dazu kommen Multi-Threading, eine nahtlose tar-Integration und Wörterbuch-Kompression für viele kleine Dateien. Dieser Guide zeigt dir die wichtigsten Befehle für den Alltag – vom schnellen Komprimieren bis zum gestreamten Datenbank-Backup.
Komprimieren
zstd <file> — Komprimiert eine Datei (erzeugt file.zst, behält das Original).
zstd data.logzstd -<level> <file> — Komprimiert mit einer bestimmten Stufe (1=schnellste, 19=beste, Standard 3).
zstd -19 data.logzstd --ultra -<level> <file> — Nutzt die Ultra-Stufen (20–22, sehr langsam, aber am kleinsten).
zstd --ultra -22 data.logzstd -o <output> <file> — Komprimiert in einen bestimmten Ausgabe-Dateinamen.
zstd -o backup.zst data.logzstd --rm <file> — Komprimiert und löscht anschließend das Original.
zstd --rm data.logzstd -T<n> <file> — Multi-Threaded-Kompression (0=Kerne automatisch erkennen).
zstd -T0 -19 largefile.datDekomprimieren
zstd -d <file>.zst — Dekomprimiert eine Datei.
zstd -d data.log.zstunzstd <file>.zst — Dekomprimiert (Alias für zstd -d).
unzstd data.log.zstzstd -d -o <output> <file>.zst — Dekomprimiert in einen bestimmten Dateinamen.
zstd -d -o restored.log data.log.zstzstdcat <file>.zst — Dekomprimiert nach stdout (wie zcat bei gzip).
zstdcat data.log.zst | grep 'error'zstd -d --rm <file>.zst — Dekomprimiert und löscht anschließend die komprimierte Datei.
zstd -d --rm data.log.zstPiping & Streaming
<command> | zstd > <output>.zst — Komprimiert per Pipe übergebene Daten.
mysqldump mydb | zstd > backup.sql.zstzstd -d < <input>.zst | <command> — Dekomprimiert und leitet an einen Befehl weiter.
zstd -d < backup.sql.zst | mysql mydbtar cf - <dir> | zstd > <archive>.tar.zst — Erzeugt ein tar.zst-Archiv (tar + zstd).
tar cf - project/ | zstd -T0 > project.tar.zstzstd -d < <archive>.tar.zst | tar xf - — Entpackt ein tar.zst-Archiv.
zstd -d < project.tar.zst | tar xf -tar --zstd -cf <archive>.tar.zst <dir> — Erzeugt tar.zst über die eingebaute zstd-Unterstützung von tar (GNU tar).
tar --zstd -cf project.tar.zst project/tar --zstd -xf <archive>.tar.zst — Entpackt tar.zst über die eingebaute Unterstützung von tar.
tar --zstd -xf project.tar.zstMehrere Dateien
zstd <file1> <file2> <file3> — Komprimiert mehrere Dateien einzeln.
zstd *.logzstd -d *.zst — Dekomprimiert mehrere Dateien.
zstd -d *.zstzstd -r <dir> — Komprimiert rekursiv alle Dateien in einem Verzeichnis.
zstd -r /var/log/old/Info & Test
zstd -l <file>.zst — Zeigt Kompressions-Infos (Rate, Größen).
zstd -l data.log.zstzstd -t <file>.zst — Prüft die Integrität einer komprimierten Datei.
zstd -t backup.sql.zstzstd -b <file> — Benchmarkt die Kompressions-/Dekompressionsgeschwindigkeit.
zstd -b data.logzstd -b -e<level> <file> — Benchmarkt über mehrere Kompressionsstufen hinweg.
zstd -b1 -e19 data.logzstd -V — Zeigt die zstd-Version an.
zstd -V Fazit
zstd ist heute die naheliegende Wahl, wenn du Geschwindigkeit und Kompressionsrate zugleich willst: Die Standardstufe 3 ist blitzschnell, mit -T0 skaliert es über alle Kerne, und tar --zstd macht das Archivieren bequem. Zwei Dinge solltest du im Blick behalten: --rm löscht das Original unwiderruflich – verwende es nur, wenn die komprimierte Datei sicher angekommen ist. Und die Ultra-Stufen --ultra -20 bis -22 brauchen nicht nur beim Packen, sondern auch beim Entpacken deutlich mehr Arbeitsspeicher – auf knapp bemessenen Zielsystemen also mit Bedacht einsetzen.
Weiterführende Links
- zstd – GitHub-Projekt – Quellcode, Releases und Dokumentation (englisch)
- Zstandard – offizielle Projektseite – Format-Spezifikation, Benchmarks und Handbuch (englisch)