ubuntuusers.de

ubuntuusers.deWiki7z

7z

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

7z {en} ist sowohl ein Dateiformat als auch ein Kommandozeilenprogramm zur Datenkompression. Es handelt sich um die Referenzimplementierung des hocheffizienten, freien LZMA-Algorithmus', der die allermeisten anderen Algorithmen in ihrer Kompressionsstärke mitunter deutlich übertrifft (Vergleich {en}).

Ein Beispiel: LZMA komprimiert durchschnittlich 50% stärker als der Deflate-Algorithmus des weit verbreiteten ZIP-Formats. Auch mit proprietären, kommerziellen Formaten wie RAR kann sich 7z messen. Sensible Daten können per AES-256 verschlüsselt werden und ein Archiv kann bei Bedarf in beliebig große Teile zerlegt werden.

Dank seiner Open-Source-Entwicklung hat 7z mittlerweile große Verbreitung gefunden. Die Standard-Archivmanager von GNOME (File-Roller), XFCE/LXDE (XArchiver) und KDE (Ark) kommen mit dem Format zurecht, indem sie auf das hier beschriebene 7z-Terminalprogramm zurückgreifen. Auch für Windows gibt es eine breite Palette an Programmen, die 7z von Haus aus unterstützen. Eine Auflistung findet sich auf der Homepage {en}.

Hinweis:

Der LZMA-Algorithmus stellt beim Komprimieren sehr hohe Ansprüche an die Systemleistung, insbesondere an den Arbeitsspeicher. Leistungsschwache Systeme werden spätestens bei großen Datenmengen und höheren Kompressionsstufen völlig in die Knie gehen ("System Lock-up"). Um das Potential voll auszuschöpfen, sollten mindestens 2GB Arbeitsspeicher vorhanden sein und auch der Prozessor sollte eine Gesamtleistung von ~2Ghz keinesfalls unterschreiten.

Installation

Der Linux-Port von 7z heißt p7zip. Es finden sich zwei Varianten in den Paketquellen:

  • p7zip (universe, Unterstützt nur 7z und LZMA)

  • p7zip-full (universe, Unterstützt noch weitere Formate und Algorithmen)

  • p7zip-rar (multiverse, Unfreies Modul für p7zip-full, um auch RAR-Archive zu entpacken)

Wiki/Vorlagen/Installbutton/button.png

Nach der Installation[1] wird p7zip mit 7zr aufgerufen[2] und p7zip-full nur mit 7z; Im Verlaufe dieses Artikels wird von p7zip-full ausgegangen, der Befehl ist bei Bedarf auszutauschen.

Benutzung

Achtung!

7z alleine ist für ein Backup eines kompletten Linux-/Unix-Systems nicht geeignet, da es sämtliche Zugriffsrechte ignoriert. Eine Möglichkeit, dieses Problem zu umgehen findet sich im Abschnitt Tipps.

Die allgemeine Syntax von p7zip-full lautet:

7z OPTIONEN SWITCHES AUSGABE EINGABE 

Ein Beispiel:

7z a -t7z -m0=LZMA -mmt=on -mx9 -md=96m -mfb=256 /home/peter/kirschkuchenrezept.7z /home/peter/kirschkuchenrezept.doc 

7z erkennt Verzeichnisse (rekursives arbeiten) selbstständig, es muss kein spezieller Parameter angegeben werden. Optionen werden immer als Buchstaben am Anfang angegeben, während die darauf folgenden Switches immer ein vorstehendes - haben.

Optionen

Mit den Optionen wird zuerst grob festgelegt, was zu tun ist.

Optionen
OptionBeschreibung
aDateien/Verzeichnisse einem Archiv hinzufügen bzw. eine Archivdatei erstellen
dDateien/Verzeichnisse aus einem Archiv löschen
eEinfaches Entpacken aller Dateien aus dem Archiv
lInhalt eines Archivs auflisten
tArchiv auf Beschädigungen prüfen
uArchivinhalt aktualisieren
xArchiv entpacken und dabei die Verzeichnisstruktur erhalten

Switches

Im folgenden nur ein Auszug der wichtigsten Switches, welche die genaue Vorgehensweise festlegen. Der Fokus liegt hier auf dem LZMA-Algorithmus. Informationen zu weiteren Switches finden sich auf den Manpages.

Switches
SwitchBeschreibung
-lkeine Symlinks archivieren, sondern ihr Ziel
-mAlgorithmus für Kompression festlegen (z.B. -m0=LZMA)
-mhe=onDen Header des Archivs verschlüsseln
-oZIELNicht ins gleiche Verzeichnis entpacken (Standard), sondern in "ZIEL"
-pPASSWORTArchiv mit Passwort schützen
-tDATEIFORMAT Dateiformat festlegen (z.B. -t7z)
-mx=STUFEStufe der Kompressionsstärke (1=schnell und schlecht - 9=langsam und gut)
-mfb=NUMMERAnzahl der Wörterbücher (8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 273)
-md=NUMMERGröße der Wörterbücher (64k, 1m, 2m, 4m, 6m, 8m, 12m, 16m, 24m, 32m, 48m, 64m, 96m, 128m)
-ms=onProgressive ("solid") Kompression

Tipps

  • Je höher die anstehenden Nummern bei den Switches -mfb und -md sind, desto stärker ist die Kompression. Dies wirkt sich allerdings nicht nur auf die benötigte Zeit des Vorgangs aus, sondern auch auf die Systemauslastung, insbesondere die des Arbeitsspeichers. Es sei nochmals darauf hingewiesen, dass der Switch -md nicht die maximale Beanspruchung des Arbeitsspeichers definiert.

  • Die progressive Komprimierung wird die Effizienz immer dann erhöhen, wenn mehrere Dateien gepackt werden sollen; Insbesondere, wenn Diese sich ähneln. Der nötige Aufwand kann durch die Methode jedoch stark in die Höhe schiessen, sie sollte daher bedacht eingesetzt werden. Ist ein Archiv progressiv komprimiert worden, können einzelne Dateien bzw. Verzeichnisse nur entpackt werden, indem alles, was sich im Archiv davor befindet abgearbeitet wird. In einem solchem Szenario dauert das Entpacken länger- beim Entpacken des gesamten Archivs gibt es hingegen keinen sonderlichen Zeitunterschied.

  • Um doch ein Backup eines Linux-/Unix-Systems mit 7z zu komprimieren, empfiehlt es sich, dieses vorher mit tar zu einem einzelnen Datenstrom zusammenzufügen. Beispiel:

    tar cf - PFAD | 7za a -si ERGEBNIS.tar.7z 

Diese Revision wurde am 5. Februar 2012 15:23 von Kerlbürste Suessholz erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Datensicherung, Shell, Packer, Archiv, Komprimierung

Passwort vergessen?