// Tutorial · Linux · Archive

Komprimieren und Archivieren unter Debian 13: tar, zip, xz, zstd, 7z und rar

📅 21.09.2026 ⏱ 21 Min. Lesezeit

Komprimieren klingt nach einer Entscheidung, die man einmal trifft – aber tar, zip, xz, zstd, 7z und rar lösen unterschiedliche Probleme: Das eine bündelt Dateien, das andere komprimiert einen Stream, das dritte verschlüsselt beides zusammen. Dieser Artikel trennt das sauber, zeigt die Befehle für Debian 13 – und stellt die Verfahren mit gemessenen Größen und Laufzeiten gegenüber, damit du nicht nach Gefühl wählst.

Archiv und Kompression sind zwei Dinge

Der häufigste Denkfehler: tar komprimiert nicht. GNU tar bündelt Dateien zu einem Strom – nicht mehr. Erst in Kombination mit gzip, bzip2, xz oder zstd entsteht ein komprimiertes Archiv. Deshalb ist backup.tar oft fast so groß wie die Daten selbst.

AufgabeWerkzeug in Debian 13Ergebnis
Viele Dateien in eine Datei bündelntar.tar – unkomprimiert, dafür schnell und einfach prüfbar
Einen einzelnen Strom komprimierengzip, bzip2, xz, zstd, lz4Eine komprimierte Datei – kennt selbst keine Ordnerstruktur
Bündeln, komprimieren und Rechte speichernzip, 7z, rarEin Containerarchiv mit Inhaltsverzeichnis
Bündeln, komprimieren und verschlüsseln7z, oder tar plus age/gpgArchiv mit Passwort oder Schlüssel
Die wichtigste Konsequenz aus dieser Trennung: Weil tar nur bündelt, kannst du das Kompressionsverfahren jederzeit wechseln – ohne die Daten neu zu sortieren. Genau deshalb ist tar.zst heute die bessere Wahl als das alte tar.gz, während zip dort sinnvoll bleibt, wo Windows oder ein fremdes Gegenüber die Datei öffnen muss.

Die Formate im Überblick

EndungContainerVerfahrenTypischer EinsatzWindows-Kompatibilität
.tarjakeinesBackups vor dem Komprimieren, Datenaustausch auf UnixNur mit Zusatzprogramm
.tar.gzjadeflate (gzip)Der Klassiker, überall lesbarÜber 7-Zip oder WSL gut
.tar.bz2jabzip2Altbestand, alte AnleitungenEbenso
.tar.xzjaLZMA2 (xz)Distributionen, Software-Quellen: kleinste DateienÜber 7-Zip
.tar.zstjaZstandardBackups, Pakete, Kernel – der moderne StandardÜber 7-Zip ab aktuellen Versionen
.zipjadeflateAustausch mit Windows, einzelne Dateien, überall öffnen ohne ZusatzsoftwareDirekt im Datei-Explorer
.7zjaLZMA2, AESGroße Backups, Verschlüsselung, beste Kompression ohne xz-EigenheitenÜber 7-Zip (Windows), selten vorinstalliert
.rarjaproprietärVerteilung durch andere; selten die eigene WahlVorinstalliert auf Windows
Faustregel für Debian 13: Backups → tar.zst. Austausch mit Windows-Nutzern → zip. Verteilung von Software oder Quelltext → tar.xz. Verschlüsselte Einzelarchive → 7z. Fremde .rar-Dateien → unrar oder 7z.

Der Messaufbau

Benchmark-Zahlen aus dem Netz sind für deinen Rechner wertlos, wenn der Inhalt ein anderer ist. Deshalb habe ich selbst gemessen – mit einem Korpus, der typische Selbsthosting-Daten nachbildet:

Teil des KorpusGrößeWarum enthalten
Server-Log (Text, hoch redundant)12 MBDer Idealfall: hierarchisches Textmaterial wie Logs, Quelltext, HTML
Binärdateien (Module, ausführbare Dateien)6,4 MBDer mäßige Fall: Binärdaten mit vielen Wiederholungen
Zufallsdaten2 MBDer Grenzfall: nicht komprimierbar – zeigt das Ende der Fahnenstange
Gesamt19,4 MiBEin realistischer Mix statt nur Text

Gemessen wurde auf einem Ryzen 9 9950X3D (16 Kerne, 32 Threads) unter CachyOS mit GNU tar 1.35, xz 5.8, zstd 1.5.7, 7-Zip 26.02 und brotli. Die Laufzeiten hängen an dieser Maschine, die Kompressionsquoten nicht – die Quote ist eine Eigenschaft des Verfahrens und des Inhalts.

Zwei Dinge zum Einordnen: Alle tar-Läufe sind einläufig gelaufen, außer wo ausdrücklich -T0 steht; 7-Zip nutzt von sich aus mehrere Threads. Und: Hätte der Korpus nur aus Text bestanden, fielen die Unterschiede größer aus – hätte er nur aus Zufallsdaten bestanden, wären alle Verfahren wirkungslos.

Gemessene Ergebnisse

Ausgangsgröße: 19,4 MiB. „Quote“ ist die Archivgröße im Verhältnis zu den Rohdaten – 25 % heißt also: auf ein Viertel geschrumpft.

VerfahrenGrößeQuoteZeitEinordnung
tar, unkomprimiert19,6 MiB101 %0,0 sNur bündeln – kein Gewinn, aber maximal schnell und einfach prüfbar
tar + gzip -65,33 MiB27,4 %0,3 sDer alte Standard: schnell, mäßige Kompression, überall lesbar
tar + gzip -95,28 MiB27,2 %0,9 sFür rund 1 % kleinere Datei die dreifache Zeit – fast nie sinnvoll
tar + bzip2 -14,89 MiB25,1 %0,9 sSchnellstes bzip2 schlägt gzip -9 deutlich, kostet aber Zeit
tar + bzip2 -94,52 MiB23,2 %1,1 sGute Quote, langsames Entpacken – siehe unten
tar + xz -64,19 MiB21,6 %3,6 sDer Klassiker für Verteilung: klein, akzeptable Laufzeit
tar + xz -9e -T04,07 MiB20,9 %6,0 sKleinstes Ergebnis der Messung, dafür am langsamsten beim Erzeugen
tar + zstd -34,97 MiB25,6 %unter 0,1 sSchlägt gzip in Größe und Zeit gleichzeitig – der Grund für seinen Siegeszug
tar + zstd -19 -T04,25 MiB21,8 %4,7 sAuf xz-Niveau, dabei viel schneller und mit Multithreading
tar + zstd -19 --long=274,25 MiB21,8 %5,1 sKein Gewinn hier: das große Fenster hilft erst bei deutlich größeren Einzeldateien
tar + lz4 -95,91 MiB30,4 %0,1 sSchwächste Quote, dafür extrem schnell – für Zwischenpuffer, nicht für Backups
tar + brotli -q114,18 MiB21,5 %19,7 sGute Quote, aber für Archive viel zu langsam – brotli gehört ins Web, nicht ins Backup
7z LZMA2 -mx54,20 MiB21,6 %1,2 sDas beste Verhältnis der Messung: xz-Größe in einem Drittel der Zeit
7z LZMA2 -mx94,09 MiB21,0 %1,9 sGesamtsieger bei der Größe, dazu Rechte, Symlinks und Verschlüsselung im Container
7z als ZIP (-mx7)5,36 MiB27,5 %1,2 sBeweis, dass die Quote am Verfahren hängt: gleiches Programm, deflate statt LZMA2
Vier Erkenntnisse aus der Tabelle:gzip ist überholt – zstd -3 ist schneller und kleiner. ② bzip2 hat keinen Vorteil mehr, weder bei der Größe noch bei der Zeit. ③ 7z LZMA2 holt aus derselben Hardware fast die xz-Quote bei einem Bruchteil der Laufzeit. ④ Die letzten 5 % kosten überproportional: von 4,97 MiB (zstd -3) auf 4,07 MiB (xz -9e) sind es anderthalb Prozentpunkte Größe für das Sechzigfache an Zeit.
Mein Alltagsurteil: tar --zstd als Standard, xz -9e nur für Dinge, die einmal gepackt und tausendmal heruntergeladen werden (Software, Quelltexte), 7z, wenn Verschlüsselung oder Windows-Rechte mit ins Archiv sollen.

Entpacken und Verifizieren

Die Kompressionszeit ist nur die halbe Wahrheit – beim Entpacken zahlt man dauerhaft:

ArchivEntpackzeitBemerkung
tar.gz (gzip -6)unter 0,1 sSehr schnell – ein Grund für die Langlebigkeit des Formats
tar.xz (xz -6)0,1 sDeutlich schneller als das Erzeugen
tar.zst (zstd -3)unter 0,1 sBei Backups entscheidend: Wiederherstellen muss schnell gehen
tar.lz4unter 0,1 sSchnellstes Entpacken, schwächste Quote
tar.bz2 (bzip2 -9)0,3 sLangsamstes Entpacken – bzip2 kostet in beide Richtungen
7z LZMA20,1 sUnauffällig schnell, Prüfsummen inklusive

Archive lassen sich mit einem Befehl prüfen, ohne sie auszupacken:

# Prüfsummen im Archiv testen
tar -tf backup.tar.zst        > /dev/null   # liest das Archiv komplett
gzip -t datei.gz && echo ok
bzip2 -t datei.bz2 && echo ok
xz -t datei.xz && echo ok
zstd -t datei.zst && echo ok
7z t backup.7z                # 7-Zip testet Inhalte und Prüfsummen
unzip -t backup.zip           # testet die CRC-Summen im ZIP
Ein Archiv ohne Prüfung ist kein Backup. Platte voll, abgebrochener Transfer, defekter USB-Stick – Kompressionsverfahren erkennen solche Schäden oft erst mitten im Entpacken. Wer nach dem Schreiben -t laufen lässt, findet den Fehler am selben Tag statt im Notfall.

tar richtig benutzen

Die Kurzschreibweise tar -czf ist kein Geheimwissen, sondern nur eine Abkürzung: c für create, f für die Datei, davor das Verfahren – z für gzip, j für bzip2, J für xz. Für zstd gibt es keinen Buchstaben, dafür --zstd oder die allgemeine Form mit -I.

# Bündeln mit verschiedenen Verfahren
tar -cf backup.tar      ordner/                  # unkomprimiert
tar -czf backup.tar.gz  ordner/                  # gzip
tar -cjf backup.tar.bz2 ordner/                  # bzip2
tar -cJf backup.tar.xz  ordner/                  # xz
tar --zstd -cf backup.tar.zst ordner/            # zstd (empfohlen)
tar -c -I 'zstd -19 -T0' -f backup.tar.zst ordner/   # zstd, hart und parallel

# Endung automatisch waehlen (-a), praktisch fuer Backups
tar -caf "backup-$(date +%F).tar.zst" ordner/

# Ansehen, ohne zu entpacken
tar -tvf backup.tar.zst | less                  # Liste mit Rechten und Groessen
tar -tf  backup.tar.zst | wc -l                 # nur zaehlen

# Entpacken
tar -xf backup.tar.zst                          # ins aktuelle Verzeichnis
tar -xf backup.tar.zst -C /srv/wiederherstellung
tar -xf backup.tar.zst --one-top-level=neu      # alles in einen neuen Ordner
tar -xf backup.tar.zst ordner/pfad/datei.txt    # ein einzelnes Mitglied

# Rechte und Besitzer
sudo tar --numeric-owner -xpf backup.tar.zst    # IDs statt Namen, Rechte erhalten
sudo tar -xf backup.tar.zst --same-owner        # Besitzverhaeltnisse uebernehmen

# Ausnahmen beim Erzeugen
tar --zstd -cf backup.tar.zst \
    --exclude='./cache/*' --exclude='./tmp/*' \
    --exclude-from=/root/backup-ausnahmen.txt \
    -C / daten ordner
OptionWirkungWann wichtig
-aVerfahren aus der Dateiendung ableitenWenn Skripte die Endung selbst bauen
--exclude-fromAusnahmeliste aus Datei lesenBackups: Caches, Sockets, node_modules, Container-Volumes
-CVor dem Arbeiten Verzeichnis wechselnRelative Pfade im Archiv erzwingen – verhindert absolute Pfade
--one-top-levelAlle Mitglieder in einen neuen Ordner entpackenWenn du nicht weißt, wo das Archiv seine Dateien abwirft
--numeric-ownerUID/GID statt Namen speichernWiederherstellung auf Systemen mit anderen Benutzernamen
--strip-components=1Führende Pfadteile beim Entpacken entfernenArchiv mit Oberordner in ein bestehendes Verzeichnis entpacken
--checkpointFortschrittsmeldungen bei großen ArchivenBackups mit mehreren hundert GB
Merksatz für tar: Erst bündeln, dann komprimieren – und beim Entpacken immer mit -C in ein leeres Verzeichnis arbeiten. Wer tar -xf im / oder im Home-Verzeichnis ausführt, versteht sekundenlang nicht, warum plötzlich Dateien verschwunden wirken.

zip und unzip

ZIP ist das Format für den Austausch: Jedes Betriebssystem öffnet es ohne Zusatzsoftware. Der Preis: Es speichert standardmäßig keine Unix-Rechte und keine symbolischen Verknüpfungen, und die Kompression ist auf dem Niveau von gzip.

# Pakete unter Debian 13 nachinstallieren
sudo apt install zip unzip

# Erzeugen
zip -r backup.zip ordner/                 # rekursiv
zip -9 -r backup.zip ordner/              # maximale Kompression
zip -r backup.zip ordner/ -x '*/cache/*'  # Ausschluesse
zip -r backup.zip ordner/ -y              # Symlinks als Symlinks speichern
zip -s 2g -r gross.zip ordner/            # in 2-GB-Haeppchen aufteilen

# Ansehen und entpacken
unzip -l backup.zip                       # Inhaltsverzeichnis
unzip -t backup.zip                       # Pruefsummen testen
unzip backup.zip -d /ziel                 # in ein Zielverzeichnis
unzip -n backup.zip                       # nichts ueberschreiben
unzip -o backup.zip                       # ohne Rueckfrage ueberschreiben
unzip backup.zip 'ordner/unterordner/*'   # gezielt einzelne Pfade
Umlaute im ZIP – der klassische Austauschärger. Mein Test mit Ümläute & Sonderzeichen (Test).txt und straße-äöü.txt lief sauber durch: Erzeugung mit 7-Zip, Anzeige und Entpacken mit unzip 6.00 haben die Namen korrekt dargestellt. Problematisch sind Archive aus alten Windows-Programmen, die Zeichensätze ohne Kennzeichnung speichern. Debian's unzip kennt dafür die Option -O CHARSET (etwa unzip -O CP850 archiv.zip); wenn das nicht hilft, ist 7z x archiv.zip meist die robustere Wahl.
Verschlüsseln mit zip -e? Lass es. Das ist ZipCrypto – ein Verfahren aus den Achtzigern, für das es Werkzeuge gibt, die Passwörter in Sekunden prüfen. Wenn es verschlüsseltes ZIP sein muss, erzeuge es mit AES-256 über 7-Zip (siehe Abschnitt Verschlüsselung) – und beachte dabei die Einschränkung, die ich weiter unten gemessen habe.

bzip2: der Klassiker auf dem Abstellgleis

bzip2 war lange die Antwort auf „kleiner als gzip, ohne so langsam wie xz zu sein“. Diese Nische ist geschlossen: In meiner Messung war bzip2 -9 größer als zstd -19 und dabei beim Entpacken der langsamste Kandidat überhaupt.

sudo apt install bzip2

bzip2 -9 datei.log            # erzeugt datei.log.bz2 und loescht das Original
bzip2 -k -9 datei.log         # Original behalten (-k = keep)
bunzip2 datei.log.bz2         # entpacken (alternativ: bzip2 -d)
bzip2 -t datei.log.bz2        # Integritaet pruefen

# Mit tar
tar -cjf archiv.tar.bz2 ordner/
tar -xjf archiv.tar.bz2

# Parallel-Variante, falls installiert
sudo apt install pbzip2
tar -c -I pbzip2 -f archiv.tar.bz2 ordner/
Warum bzip2 trotzdem noch auftaucht: Alte Downloadseiten, ältere Software-Quellen und Anleitungen aus den 2010ern liefern .tar.bz2. Entpacken musst du es also können – nur erzeugen musst du es nicht mehr. Der Blockgrößen-Parameter (-1 bis -9) bestimmt übrigens, wie viel Speicher das Entpacken braucht: 900 kB pro Blockstufe.

xz: der Kompressionskönig

xz (LZMA2) liefert die kleinsten Dateien – und bezahlt das mit Rechenzeit und Speicherbedarf beim Erzeugen. Für Verteilung und langfristige Ablage ist das oft der richtige Kompromiss, für ein tägliches Backup meist nicht.

sudo apt install xz-utils

xz -6 datei.img                 # Standardstufe
xz -9e datei.img                # maximal, langsam ("e" = extreme)
xz -T0 -9 datei.img             # alle Kerne nutzen
xz -k -6 datei.img              # Original behalten
unxz datei.img.xz               # entpacken
xz -t datei.img.xz              # pruefen
xz -l backup.tar.xz             # Info: Bloecke, Verhaeltnis, Speicherbedarf

# Mit tar inkl. Parallelitaet
tar -c -I 'xz -9e -T0' -f archiv.tar.xz ordner/
tar -xf archiv.tar.xz
DetailBedeutung für die Praxis
Stufen -0 bis -9Höhere Stufe = größeres Wörterbuch = bessere Quote und deutlich mehr Arbeitsspeicher beim Erzeugen
Entpacken ist billigBeim Wiederherstellen fällt nur der Speicher für das Wörterbuch an, nicht die Rechenzeit des Erzeugens
-T0Nutzt alle Kerne – ohne diese Option läuft xz einläufig, auch auf 32-Thread-Maschinen
PrüfsummenCRC32, CRC64 oder SHA-256 wählbar – SHA-256 ist langsamer, aber stärker bei Bitfehlern
Alte .lzma-DateienDasselbe Verfahren im alten Einzelformat – unxz liest sie weiterhin

zstd: der Alltagsstandard

Zstandard wurde genau für das Problem entworfen, an dem gzip und xz scheitern: gute Kompression bei Geschwindigkeiten, die man auch bei täglichen Backups akzeptiert. In meiner Messung war zstd -3 in unter einer Zehntelsekunde fertig und dabei kleiner als gzip -9 – bei einem Drittel von dessen Laufzeit.

sudo apt install zstd

zstd datei.log                  # Standardstufe 3, erzeugt datei.log.zst
zstd -19 -T0 datei.log          # hart und parallel
zstd --ultra -22 datei.log      # nochmal kleiner, deutlich langsamer
zstd -d datei.log.zst           # entpacken
zstd -t datei.log.zst           # pruefen
zstd --long=27 -19 gross.img    # grosses Fenster fuer sehr grosse Dateien
zstd -l datei.log.zst           # Info zur Datei

# Mit tar
tar --zstd -cf archiv.tar.zst ordner/
tar -xf archiv.tar.zst          # Extraktion erkennt zstd automatisch
Warum zstd heute Standard istKonkret
Multithreading eingebaut-T0 beschleunigt große Datenmengen ohne Zusatzprogramm – kein pigz, kein pixz nötig
Stufen bis 19, mit --ultra bis 22Du kannst dieselbe Datei für schnelle Backups oder maximale Ablage optimieren
Schnelles EntpackenWiederherstellen ist deutlich schneller als bei xz
Überall angekommenDebian-Pakete, Kernel, Container-Images und ZFS nutzen es – die Werkzeuge sind also ohnehin installiert
WörterbücherFür sehr viele kleine Dateien (etwa Logstapel) extrem wirksam, aber ein eigenes Thema
Meine Standardzeile für Backups: tar -c -I 'zstd -19 -T0' -f backup-$(date +%F).tar.zst -C /verzeichnis . – harte Kompression, alle Kerne, Endung mit Datum. Für tägliche Läufe tut es auch --zstd (Stufe 3) und ist zehnmal schneller.

7z: Container mit allem drin

7-Zip ist in meiner Messung der Kandidat mit dem besten Rundumpaket: fast xz-Quote, aber in einem Drittel der Zeit – dazu Rechte, Symlinks, Verschlüsselung und Prüfsummen im selben Container.

sudo apt install 7zip            # Paketname unter Debian 13 (auch: p7zip-full)

7z a backup.7z ordner/                     # Standard: LZMA2
7z a -mx=9 backup.7z ordner/               # maximale Kompression
7z a -mmt=on -mx=9 backup.7z ordner/       # mehrere Threads
7z a -mx=0 backup.7z ordner/               # nur buendeln: Kopie mit Rechten, kein Byte kleiner
7z l backup.7z                             # Inhaltsverzeichnis
7z t backup.7z                             # testen
7z x backup.7z -o/ziel                     # entpacken (x = mit Pfaden)
7z x backup.7z -o/ziel ordner/pfad         # nur einzelne Mitglieder
7z rn backup.7z alt neu                    # umbenennen im Archiv (ohne neu zu packen)
EigenschaftPraxisnutzen
Container mit MetadatenUnix-Rechte, Zeitstempel und Symlinks bleiben erhalten – anders als bei ZIP
Wählbares Verfahren-t7z -m0=lzma2, -tzip, -tgzip, -tbzip2, -txz – ein Programm für alle gängigen Formate
PrüfsummenIm Archiv mitgespeichert, 7z t prüft sie vollständig
Solid-BlockStandardmäßig werden Dateien zusammengefasst – kleinere Archive, aber Änderung einzelner Dateien teuer
RAR-UnterstützungIn der hier getesteten Version 26.02 lassen sich RAR-Archive entpacken – das Protokoll meldet entsprechende Codecs

rar und unrar unter Debian

RAR ist das Format mit der umständlichsten Rechtslage: Der Packer ist nicht frei und nicht in Debian enthalten, der Entpacker darf aus lizenzrechtlichen Gründen nur begrenzt verteilt werden. Du wirst also fast immer eine RAR-Datei vorfinden, statt selbst eine zu erzeugen.

WerkzeugPaketWas es kann
unrarunrar (non-free)Vollständiges Entpacken inklusive aktueller RAR-Versionen – Lizenz nicht frei
unrar-freeunrar-free (main)Freie Alternative, historisch eingeschränkt (vor allem ältere RAR-Versionen)
unarunarUnarchiver: freier Entpacker für viele Formate, arbeitet gut mit Zeichensätzen
7z7zipEntpackt RAR je nach Build – im Test mit Version 26.02 vorhanden
rarnicht in DebianNur direkt vom Hersteller; Debian liefert den Packer bewusst nicht mit
# Freie Variante aus main
sudo apt install unrar-free

# Vollstaendiger Entpacker (non-free-firmware/non-free aktivieren)
sudo apt install unrar
unrar l backup.rar        # Inhaltsverzeichnis
unrar t backup.rar        # testen
unrar x backup.rar        # entpacken mit Pfaden

# Alternative: 7z oder unar
7z x backup.rar
unar backup.rar
Empfehlung an andere: Verschicke keine RAR-Dateien. Der Empfänger braucht dafür proprietäre Software, und Sicherheitsforscher kritisieren den Packer seit Jahren als unnötig angreifbar – Versionen bis 6.2.x waren für aktive Ausnutzung bekannt. 7z und tar.zst sind kostenlos, prüfbar und auf jedem System verfügbar.

Verschlüsseln richtig gemacht

Kompression und Verschlüsselung sollte man in der richtigen Reihenfolge stapeln: erst komprimieren, dann verschlüsseln. Verschlüsselte Daten sind nicht mehr komprimierbar, weil sie keine Muster mehr enthalten – wer zuerst verschlüsselt, lässt die ganze Kompressionsersparnis liegen.

# 7z: AES-256, und mit -mhe=on auch die Dateinamen verschluesseln
7z a -p -mhe=on -mx=5 geheim.7z ordner/          # fragt nach dem Passwort
7z a -pGEHEIM -mhe=on -mx=5 geheim.7z ordner/    # Passwort direkt (landet in der History!)

# AES-verschluesseltes ZIP ueber 7-Zip erzeugen
7z a -tzip -mem=AES256 -pGEHEIM geheim.zip ordner/

# Alternative: tar + age (modern) oder gpg
tar --zstd -cf - ordner/ | age -p -o backup.tar.zst.age
tar --zstd -cf - ordner/ | gpg --symmetric --cipher-algo AES256 -o backup.tar.gz.gpg
BehauptungErgebnis meines Tests
Passwort wird geprüftKorrekt: 7z t mit richtigem Passwort läuft durch, mit falschem wird abgelehnt
-mhe=on verbirgt die DateinamenBestätigt: 7z l ohne Passwort bricht ab (Rückgabecode 255) – ohne -mhe sind die Namen sichtbar
AES-ZIP überall lesbarNein. Das klassische unzip scheitert mit „need PK compat. v5.1“ – AES-Verschlüsselung (Methode 99) kann es nicht. Dafür brauchst du 7-Zip oder Werkzeuge wie 7z/p7zip
zip -e ist sicherNein: Das ist ZipCrypto, kein AES. Nutze es nicht für ernsthafte Daten
Passwörter nie in die Kommandozeile auf Debian: 7z a -pPASSWORT … landet in der Shell-History (~/.bash_history) und ist für andere Prozesse sichtbar (ps). Nutze -p ohne Wert, damit 7-Zip interaktiv fragt.
In Skripten und Cron-Jobs funktioniert dieser Prompt nicht. Im Test brach 7-Zip mit leerem stdin sofort mit Rückgabecode 255 ab – immerhin entsteht dabei kein Archiv mit leerem Passwort. Für automatisierte Läufe bleibt nur -p"$PASSWORT" aus einer nur für root lesbaren Datei, mit dem Nachteil, dass das Passwort während der Laufzeit in der Prozessliste steht. Ein per Pipe übergebenes Passwort nahm 7-Zip beim Erzeugen an, bei 7z t aber nicht – für Prüfläufe also explizit -pPASSWORT mitgeben.

Praxisrezepte

Vier Beispiele, die im Serveralltag immer wiederkehren:

# 1) Vollbackup mit zstd, Ausnahmen und Pruefung danach
AUSNAHMEN=/root/backup-ausnahmen.txt          # z. B. /proc, /sys, /var/cache/*
ZIEL=/srv/backup/root-$(date +%F).tar.zst
tar -c -I 'zstd -19 -T0' -f "$ZIEL" --exclude-from="$AUSNAHMEN" \
    --one-file-system -C / . \
  && tar -tf "$ZIEL" > /dev/null \
  && echo "Backup ok: $(du -h "$ZIEL" | cut -f1)"

# 2) Logdateien platzsparend archivieren und das Original schuetzen
tar --zstd -cf "/srv/backup/logs-$(date +%F).tar.zst" -C /var/log \
    --exclude='*.gz' --exclude='*.zst' .
find /var/log -type f -name '*.log' -size +100M -print   # vorher pruefen, was gross ist

# 3) Viele kleine Dateien: erst buendeln, dann komprimieren (nicht umgekehrt)
tar -cf - /srv/daten | zstd -19 -T0 -o /srv/backup/daten.tar.zst

# 4) Grosses Image in Haeppchen, dazu passende Pruefsummen
xz -T0 -9 bild.img
split -b 2G -d bild.img.xz bild.img.xz.part-
sha256sum bild.img.xz.part-* > bild.img.xz.sha256

# 5) Verschluesselter 7z-Container: was die Stufe wirklich kostet
#    -mx=0  nur kopieren - schnell, aber kein Byte kleiner (sinnvoll bei
#            bereits komprimierten Daten wie VM-Images, .tar.gz oder Medien)
#    -mx=1  der Kompromiss fuer den Serveralltag
#    -mx=5  wenn das Archiv lange liegt und Platz zaehlt
#    -mhe=on verschluesselt auch die Dateinamen, -p fragt interaktiv nach dem Passwort
sudo 7z a -t7z -mx=1 -mmt=on -ms=off -mhe=on -p "backup-$(date +%F).7z" daten/
#    Gemessen auf einem 19,4-MiB-Korpus (Text, Binaerdateien, Zufallsdaten):
#      -mx=0 -> 19,45 MiB in 0,01 s     -mx=1 -> 4,82 MiB in 0,23 s
#      -mx=5 ->  4,63 MiB in 1,06 s     -mx=9 -> 4,56 MiB in 1,86 s

# 6) Solid oder nicht: -ms=on kleiner, -ms=off zugaenglicher
7z a -mx=5 -mmt=on -ms=off app.7z daten/        # einzelne Dateien schnell herausziehen
7z a -mx=5 -mmt=on app-solid.7z daten/          # kleiner, aber Zugriff kostet Zeit

# 7) Verschluesselter Stream: erst komprimieren, dann verschluesseln
tar -c -I "zstd -19 -T0" daten/ | age -p -o "backup-$(date +%F).tar.zst.age"
#    Ohne age, dasselbe mit gpg
tar -c -I "zstd -19 -T0" daten/ \
  | gpg --symmetric --cipher-algo AES256 --output "backup-$(date +%F).tar.zst.gpg"
#    Wiederherstellen in einem Zug - entschluesseln und direkt entpacken.
#    Achtung: aus einer Pipe erkennt tar zstd NICHT selbst, "--zstd" muss mit.
age -d "backup-2026-09-21.tar.zst.age" | tar --zstd -xf - -C /srv/wiederherstellung
gpg -d "backup-2026-09-21.tar.zst.gpg" | tar --zstd -xf - -C /srv/wiederherstellung
Ausschlussmuster: der kleine Unterschied, der zählt. Mein Test mit --exclude=./cache/* zeigt: Die Dateien im Ordner verschwinden, der leere Ordner bleibt im Archiv. Wer den Ordner komplett weglassen will, nimmt ./cache ohne /* in die Ausnahmeliste auf – sonst schleppst du in jedem Backup leere Verzeichnisgerüste mit.
SituationEmpfehlungWarum
Tägliches Backup eines Serverstar --zstd oder zstd -19 -T0Schnell genug für Nachtfenster, schnelles Wiederherstellen
Software oder Quelltext veröffentlichentar.xz mit -9eWird einmal gepackt und tausendmal geladen – kleine Datei zählt
Daten an Windows weitergebenzipÖffnet sich dort ohne Zusatzsoftware
Archiv mit Rechten und Passwort7z mit AES-256 und -mhe=onKompression, Metadaten und Verschlüsselung in einem Schritt
Sehr große Dateien auf langsamer Plattelz4 oder zstd -1Die Platte ist der Engpass, nicht die CPU
Logs für einen TaggzipJedes Werkzeug liest es, Geschwindigkeit wichtiger als Quote

Typische Fehler

SymptomUrsacheLösung
Archiv ist kaum kleiner als die DatenInhalt ist bereits komprimiert (JPEG, MP4, PDF mit Bildern, .tar.gz)Prüfen: Zufallsdaten ließen sich in meinem Test überhaupt nicht verkleinern – bei Medien erwartet man 0–5 %
Cannot open: No such file or directory beim EntpackenPfade im Archiv sind relativ zum Erzeugungsverzeichnistar -tf zeigt die echten Namen – oft steckt ein Oberordner davor
Rechte nach dem Entpacken „falsch“Ohne -p/--same-owner werden Rechte nur teilweise übernommen; UID/GID lösen sich in Namen aufAls root mit -p --numeric-owner entpacken; bei ZIP ist das grundsätzlich nicht möglich
Symlinks sind plötzlich DateienZIP ohne -y, oder Archiv auf einem Dateisystem ohne Symlink-Unterstützung entpackt7z oder tar verwenden, Zielsystem prüfen
unzip: need PK compat. v5.1 (can do v4.6)AES-verschlüsseltes ZIP7z x statt unzip – im Test blieb unzip bei zwei Dateien mit exakt dieser Meldung stehen
Speicher voll beim EntpackenArchiv größer als gedacht, oder xz-Stufe braucht viel Wörterbuch-Speicherdf -h vor dem Entpacken; bei xz an Speicherbedarf denken (xz -l zeigt ihn)
Umlaute im ZIP zerschossenAltes Windows-Programm ohne UTF-8-Kennzeichnungunzip -O CP850 oder 7z x
Fortschritt nicht sichtbarKompressoren schreiben nichts während der Arbeit--checkpoint bei tar, pv dazwischen, oder -v für Dateilisten
tar: Archiv ist komprimiert. Benutzen Sie die Option --zstd.Entpacken aus einer Pipe – etwa aus einem gerade entschlüsselten Stream. Aus Dateien erkennt tar zstd selbst, aus der Pipe nichttar --zstd -xf - statt tar -xf -. Bei gzip, bzip2 und xz greift die Erkennung dagegen auch in der Pipe

Fremde Archive entpacken

Ein Archiv kann Dateien außerhalb des Zielordners anlegen. GNU tar wehrt sich in der aktuellen Version recht gut – das habe ich überprüft:

AngriffVerhalten von GNU tar 1.35 im Test
Archiv mit absolutem PfadBeim Entpacken werden führende / entfernt (Meldung: „Entferne führende / von Elementnamen“) – die Datei landet relativ im Zielordner
Archiv mit ../-PfadenWird abgewiesen: „Elementname enthält ‚..‘“ – die Datei landete nicht außerhalb des Zielverzeichnisses

Das ist eine Absicherung, keine Freigabe – die Regeln bleiben:

# 1) Immer erst schauen, was drin ist
tar -tf fremd.tar.zst | head -50
unzip -l fremd.zip
7z l fremd.7z

# 2) Nie als root in ein bestehendes Verzeichnis entpacken
mkdir /tmp/pruefen && tar -xf fremd.tar.zst -C /tmp/pruefen

# 3) Bei Unsicherheit lieber ohne Besitzerwechsel und ohne Rechte-Uebernahme
tar -xf fremd.tar.zst --no-same-owner -C /tmp/pruefen
Warum trotzdem Vorsicht? tar schützt gegen Pfad-Manipulation, aber nicht vor Inhalt: Ein Archiv darf eine Datei namens .bashrc, eine manipulierte authorized_keys oder ein ausführbares Skript mitbringen. Und es gibt Werkzeuge (etwa bsdtar oder ältere Versionen), die sich anders verhalten als GNU tar. Die sichere Reihenfolge bleibt: auflisten, in ein eigenes Verzeichnis entpacken, hinsehen – erst dann verschieben.

Was nehme ich wofür?

ZielErste WahlZweite WahlNicht sinnvoll
Backup auf dem eigenen Servertar --zstd7z -mx=5gzip -9, lz4
Kleinste Datei zum Verteilentar.xz -9e7z -mx=9brotli (zu langsam)
Austausch mit Windowszip7z (Windows braucht 7-Zip)tar.zst
Verschlüsseltes Einzelarchiv7z mit AES-256 + -mhe=ontar + agezip -e
Fremde .rar-Dateiunrar7z, unarselbst RAR erzeugen
Logs täglich rotierengzipzstd -3xz -9e
Transfer über langsame Leitung erzeugenzstd -1lz4xz -9
Wenn du nur eine Zeile mitnimmst: tar --zstd -cf archiv.tar.zst ordner/ – schnell genug für den Alltag, klein genug für die Ablage, überall auf modernen Systemen lesbar. Und anschließend mit tar -tf archiv.tar.zst prüfen, dass es auch wirklich lesbar ist.

Häufige Fragen (FAQ)

FrageAntwort
Kann tar auch komprimieren?Nur indirekt: Es ruft ein Kompressionsprogramm auf. Die Option steuert nur, welches – tar selbst kennt keine Kompression.
Warum kein zip für Backups?Weil es Rechte und Symlinks nicht zuverlässig speichert und die Kompression auf gzip-Niveau liegt. Für Systembackups fehlen dir nach dem Wiederherstellen die Berechtigungen.
Ist zstd immer besser als xz?Nein: xz ist in der Größe meist etwas besser. Der Vorteil von zstd liegt in Geschwindigkeit, Parallelität und schnellem Entpacken.
Welche Stufe soll ich nehmen?Für Backups zstd -19 -T0 oder Standardstufe 3, für Veröffentlichungen xz -9e. Stufen dazwischen sind selten ein sinnvoller Kompromiss.
Kann ich ein .tar.gz in .tar.zst umwandeln?Ja, über den Stream – ohne die Dateien einzeln zu entpacken: zcat alt.tar.gz | zstd -19 -T0 -o neu.tar.zst. Beides sind Streams, deshalb bleibt die Archivstruktur dabei erhalten.
Was ist mit pigz, pbzip2, pixz?Parallelvarianten der Klassiker. Sinnvoll bei alten Formaten; bei zstd und 7z ist die Parallelität schon eingebaut.
Komprimieren ISO-Dateien sinnvoll?Kaum: Ein ISO enthält meist bereits komprimierte Pakete. Der Gewinn liegt typischerweise im niedrigen einstelligen Prozentbereich.
Welche Pakete brauche ich überhaupt?tar, gzip und zstd sind immer vorhanden. Dazu je nach Bedarf xz-utils, bzip2, zip unzip, 7zip und unrar-free.

Fazit

Die Formatfrage ist mit einer Messung schnell entschieden: zstd ist der neue Alltagsstandard, weil es gzip in Größe und Zeit schlägt und dabei wieder schnell entpackt. xz bleibt die Wahl für alles, was einmal gepackt und oft geladen wird. 7z ist der beste Kompromiss, wenn Metadaten und Verschlüsselung mit ins Archiv sollen. zip bleibt für den Austausch, weil es jedes System öffnet. Und bzip2 musst du nur noch lesen können, nicht mehr schreiben.

Wichtiger als die Wahl des Verfahrens sind drei Gewohnheiten: Backups nach dem Schreiben prüfen, Archive in ein eigenes leeres Verzeichnis entpacken, und Passwörter niemals direkt auf die Kommandozeile schreiben.

Die fünf Merksätze:tar bündelt, der Rest komprimiert – deshalb ist die Verfahrenswahl austauschbar. ② zstd ist Standard, xz -9e für Veröffentlichungen, zip für Windows. ③ Die letzten Prozentpunkte Größe kosten ein Vielfaches an Zeit – und meist lohnt sich das nicht. ④ Verschlüsselung heißt AES-256 (7z oder age), nicht zip -e – und AES-ZIPs kann unzip nicht öffnen. ⑤ Kein Archiv ohne Prüfung: -t nach dem Erzeugen, -tf vor dem Entpacken.
📝
HuuuHosting-Redaktion

Open-Source-Tools für den eigenen Server – getestet, dokumentiert und in der Debian-13-Serie Schritt für Schritt erklärt.