Archive unter Windows und Linux: tar, zip, gzip, bzip2

Aus EasyLinux 03/2006

Archive unter Windows und Linux: tar, zip, gzip, bzip2

Verpackungskünstler

Sparen Sie Platz: Mit einem Archivierungsprogramm fassen Sie mehrere Dateien zu einer einzigen zusammen, und mit einem Komprimierungs-Tool verkleinern Sie das Datenpaket. Wir zeigen, wie Sie zum Verpackungskünstler werden.

Alles eingepackt und die Größe vielleicht noch zurechtgestutzt – gut verschnürt schicken Sie Ihre Urlaubsfotos per Mail auf die Reise oder sichern die persönlichen Daten. Mit Archivierungs- und Komprimierungsprogrammen sparen Sie Platz und sorgen für mehr Übersicht im Datendschungel. Ein weiterer Vorteil von gepackten Sicherungskopien ist, dass die ursprünglichen Dateieigenschaften erhalten bleiben – so stellen Sie beim Auspacken die Originaldaten wieder her. Wir stellen Verpackungskünstler unter Linux vor.

Format, Format

Archivformate gibt es wie Sand am Meer: Während sich unter Windows hauptsächlich .zip– und .rar-Dateien auf der Platte tummeln, sind unter Linux .tar.gz– oder .tar.bz2-Archive weit verbreitet. Für diese kryptischen Dateiendungen sind jeweils zwei Programme verantwortlich: tar fasst mehrere Dateien und Verzeichnisse zu einem Archiv zusammen, und gzip (.gz) bzw. bzip2 (.bz2) komprimieren Daten.

Trotz dieser unterschiedlichen Formate ist es kein Problem, Archive – komprimierte oder unkomprimierte – zwischen den verschiedenen Betriebssystemen auszutauschen. Linux kommt problemlos mit .zip– und .rar-Dateien zurecht, und unter Windows leistet das unter der GPL stehende Programm 7-Zip [1] gute Dienste (Abbildung 1).

Abbildung 1: 7-Zip packt und entpackt alle gängigen Archivformate, darunter auch ".tar.gz"- und ".tar.bz2"-Dateien.

Abbildung 1: 7-Zip packt und entpackt alle gängigen Archivformate, darunter auch “.tar.gz”- und “.tar.bz2”-Dateien.

Mit dem Konqueror archivieren

KDEs Datei-Manager leistet gute Dienste beim Verpacken. Wählen Sie zunächst die entsprechenden Daten aus, z. B. indem Sie mit der linken Maustaste einen Rahmen um die Dateien oder Verzeichnisse ziehen. Alternativ markieren Sie mehrere Daten, indem Sie bei gedrückt gehaltener [Strg]-Taste auf Objekte klicken – den kompletten Verzeichnisinhalt erwischen Sie über die Tastenkombination [Strg]+[A]. Schließlich erhalten Sie über den Menüpunkt Bearbeiten / Auswahl Zugriff auf verschiedene Auswahlfunktionen.

Über das Kontextmenü der rechten Maustaste erstellen Sie anschließend ein Archiv – wählen Sie den Eintrag Hinzufügen zu Archiv und geben Sie im aufgehenden Dialogfenster Verzeichnis und Dateiname an. Das Zielformat legen Sie entweder über eine Dateiendung fest, z. B. archiv.tar (unkomprimiertes tar-Archiv), archiv.tar.gz (mit gzip komprimiertes tar-Archiv) usw., oder indem Sie aus dem Drop-down-Menü einen entsprechenden Eintrag wählen.

Schneller geht’s, wenn Sie alle zu verpackenden Daten zunächst in ein eigenes Verzeichnis legen, dieses mit der rechten Maustaste markieren und aus dem Kontextmenü Komprimieren als auswählen: Konqueror bietet die gängigsten Formate an und erstellt mit einem Mausklick .gz-, .bz2-, .tar-, tar.gz-, tar.bz2– und .zip-Dateien (Abbildung 2). Die (komprimierte) Archivdatei landet im aktuellen Verzeichnis.

Abbildung 2: KDEs Datei-Manager packt und komprimiert – die Funktionen finden Sie im Kontextmenü.

Abbildung 2: KDEs Datei-Manager packt und komprimiert – die Funktionen finden Sie im Kontextmenü.

Darüber hinaus ist es über den Kontextmenü-Eintrag Komprimieren möglich, Daten einem Archiv hinzuzufügen: Wählen Sie Hinzufügen zu, um zu einer Liste der Archive im aktuellen Verzeichnis zu gelangen, oder rufen Sie den Punkt Hinzufügen zu Archiv auf und navigieren Sie im Dateidialog zum gewünschten Paket.

Mit Konqueror können Sie in komprimierte und unkomprimierte Archive per Mausklick hineinwechseln und auf die enthaltenen Daten zugreifen. Alternativ rufen Sie mit der rechten Maustaste das Kontextmenü auf, wählen dort Entpacken und entscheiden dann, ob Sie das Archiv beispielsweise im aktuellen Verzeichnis (Hier entpacken) oder an einer anderen Stelle im Dateisystem (Entpacken nach) auspacken. Die letzte Variante öffnet einen Auswahldialog, in dem Sie den gewünschten Ordner angeben. Anschließend präsentiert Konqueror den Archivinhalt in einem neuen Fenster.

Ver”zip”t und zugenäht!

Ein Zip-Archiv legen Sie auf der Kommandozeile mit dem gleichnamigen Befehl (zip) an; geben Sie dabei den Archivnamen und die Dateien oder Verzeichnisse an, die Sie einpacken wollen, z. B.:

zip archiv.zip datei1 datei2 ordner

Das Programm verrät, welche Schritte es gerade ausführt und wie stark es komprimiert:

adding: datei1 (deflated 37%)
  adding: datei2 (deflated 66%)
  adding: datei3 (deflated 65%)

Um eine Datei oder einen Ordner einem bestehenden Archiv hinzuzufügen, setzen Sie die Option -g (engl. grow, größer machen) ein. Geben Sie auch hier wieder zunächst den Namen des Archivs an, danach den Parameter und dann die anzuhängende Datei, z. B.:

$ zip archiv.zip -g datei4
updating: datei4 (deflated 40%)

Auch hier informiert das Programm über die Handlung. Ersetzen Sie -g im Aufruf durch -d, entfernt zip Dateien aus dem Archiv.

Ebenso schnell geht das Auspacken mit dem Befehl unzip: Um auf Nummer sicher zu gehen, schauen Sie zunächst nur den Inhalt an:

$ unzip -l archiv.zip
Archive:  archiv.zip
  Length     Date   Time    Name
 ——–    —-   —-    —-
        9  01-08-06 17:12   datei1
      633  01-07-06 21:51   datei2

Lassen Sie die Option -l weg, um das Archiv im aktuellen Verzeichnis auszupacken:

$ unzip archiv.zip
Archive:  archiv.zip
 extracting: datei1
  inflating: datei2

Das Programm hat praktischerweise eine eingebaute Sicherheitsabfrage. Liegen im Verzeichnis schon Dateien mit demselben Namen, fragt unzip nach:

replace datei1? [y]es, [n]o, [A]ll, [N]one, [r]ename:

Wenn Sie die betroffene Datei überschreiben wollen, drücken Sie [Y] gefolgt von [Eingabe]. Alternativ klammern Sie die Datei mit [N] aus, entscheiden mit [Umschalt]+[A], dass Sie alle weiteren Dateien auch ersetzen wollen, oder mit [Umschalt]+[N], dass keine Datei überschrieben wird. Um die Datei unter einem neuen Namen abzulegen, drücken Sie [R] und geben den neuen Dateinamen ein.

Jäger und Sammler “tar”

Während das Programm zip nicht nur archiviert, sondern gleichzeitig auch komprimiert, fasst tar lediglich Daten zu einem Archiv zusammen, das Sie anschließend mit einem Programm wie gzip oder bzip2 komprimieren.

Mehrere Dateien stecken Sie mit dem folgenden Befehl in ein Archiv:

$ tar -cvf archiv.tar datei1 datei2
datei1
datei2

Alternativ darf es auch ein Verzeichnis mit allen Unterordnern sein:

$ tar -cvf archiv.tar verzeichnis
verzeichnis/
verzeichnis/datei1
verzeichnis/datei2

Neben den Optionen (c, engl. create, erzeugt ein Archiv; v, engl. verbose, ausführliche Anzeige; f, engl. file, erwartet als Nächstes den Dateinamen des Archivs) geben Sie den Namen der Archivdatei gefolgt von den zu verpackenden Daten an.

Haben Sie etwas vergessen, ist das kein Problem – auch tar lässt Sie ein bestehendes Archiv vergrößern:

tar -r neuedatei -f archiv.tar

Wer eine Datei aus einem tar-Archiv entfernen möchte, nimmt den Parameter --delete zur Hilfe. Geben Sie zunächst die zu löschende Datei an, danach bestimmen Sie wieder mit -f den Archivnamen:

tar --delete datei3 -f archiv.tar

Um ein tar-Archiv wieder auszupacken, verwenden Sie den Parameter -x (engl. extract):

tar -xvf archiv.tar

Anders als unzip überschreibt tar vorhandene Dateien mit gleichem Namen, ohne nachzufragen. Ersetzen Sie daher zunächst -x durch -t, um den Inhalt des Archivs am Bildschirm zu betrachten:

tar -tvf archiv.tar

Komprimieren mit “gzip” und “bzip2”

Für das Verkleinern der tar-Archive sind unter Linux die beiden Komprimierungsprogramme gzip und bzip2 zuständig. Letzteres setzt auf einen anderen Kompressionsalgorithmus und erzeugt etwas kleinere Dateien. Beide Programme legen keine Archive an, sondern verkleinern nur einzelne Dateien – wollen Sie meherere Dateien oder ganze Verzeichnisse komprimieren, legen Sie zuerst ein tar-Archiv an und verkleinern dieses oder fassen beide Schritte mit einer speziellen tar-Option zusammen (siehe Abschnitt Alles in einem Rutsch). Was zip (und entsprechende Windows-Tools) in einem Rutsch machen, ist unter Linux in zwei logische Schritte aufgeteilt.

Um eine Datei kleiner zu machen, geben Sie den Befehl

gzip datei

bzw.

bzip2 datei

ein. Beide Programme ersetzen die Originaldatei durch eine komprimierte Version mit der Endung .gz bzw. .bz2. Wie stark die Tools die Ausgangsdatei verkleinern, hängt vom Inhalt ab: Am besten komprimierbar sind Dateien, in denen sich ähnliche Muster wiederholen. MP3-Dateien und JPEG-Bilder, die schon komprimierte Daten enthalten, schrumpfen daher fast gar nicht.

Darüber hinaus nehmen Sie selbst Einfluss auf die Komprimierung, indem Sie eine Kompressionsrate zwischen 1 und 9 angeben: So arbeitet gzip -1 datei bzw. bzip2 -1 datei am schnellsten, aber mit niedrigster Kompressionsrate; entsprechend komprimieren die Programme mit dem Parameter -9 am stärksten. Standardeinstellungen sind -6 für gzip und -9 für bzip2.

Die Befehle zum Auspacken heißen gunzip bzw. bunzip2:

gunzip datei.gz
bunzip2 datei.bz2

Liegt eine Datei mit demselben Namen im Verzeichnis, verhalten sich die beiden Programme unterschiedlich: gunzip fragt nach, ob Sie die Datei überschreiben möchten:

gunzip: datei1 already exists; do you wish to overwrite (y or n)?

Drücken Sie [Y], um die Datei zu überschreiben, oder [N], um den Vorgang abzubrechen, und bestätigen Sie Ihre Wahl mit [Eingabe].

bunzip2 verhält sich anders: Standardmäßig verweigert das Tool den Dienst und bricht den Vorgang mit der Meldung Output file datei1 already exists. (“Die Datei datei1 gibt es schon”) ab. Wollen Sie die Datei dennoch ersetzen, teilen Sie das dem Programm über die Option -f (engl. force, erzwingen) mit:

bunzip2 -f datei.bz2

Alles in einem Rutsch

Mit den gezeigten Kommandos tar und gzip bzw. bzip2 erstellen Sie komprimierte Archive. Einen Arbeitsschritt können Sie sich allerdings sparen: tar kennt Parameter, die das Archiv in einem Rutsch komprimieren. Um ein gzip-komprimiertes tar-Archiv zu erstellen, schreiben Sie beispielsweise:

tar -czvf archiv.tar.gz verzeichnis

Entsprechend ersetzen Sie im Aufruf die Option -z durch -j, wenn Sie auf bzip2 als Komprimierungskünstler setzen:

tar -cjvf archiv.tar.bz2 verzeichnis

Die richtige Dateiendung müssen Sie selbst angeben, wenn Sie die Schritte auf diese Weise zusammenfassen. An komprimierte tar-Archive können Sie keine weiteren Daten anhängen – entweder packen Sie die Daten mit gunzip respektive bunzip2 wieder aus, hängen die Datei ans Archiv an und komprimieren es wieder, oder Sie greifen gleich zu zip.

Zum Auspacken von .tar.gz– und .tar.bz2-Archiven ist ebenfalls nur ein Kommandozeilenaufruf nötig:

tar -xzvf archiv.tar.gz

bzw.

tar -xjvf archiv.tar.bz2

Beachten Sie auch hier, dass tar ohne Warnung Dateien mit gleichem Namen überschreibt – daher können Sie auch in diesem Fall zunächst -x durch -t ersetzen und nachschauen, was das Paket enthält:

$ tar -tzvf archiv.tar.gz
datei1
datei2

Ob Sie Pakete im Konqueror oder auf der Kommandozeile erstellen, ändert natürlich nichts an Format und Inhalt: Die mit tar erzeugten Archive können Sie also auch über den Konqueror wieder entpacken.

Glossar

tar

Der Name leitet sich vom englischen tape archiver ab – tar war ursprünglich für die Verwaltung von Bandarchiven vorgesehen. Auch wenn diese Backup-Medien heute nur noch im Profibereich verwendet werden, setzt Linux immer noch auf tar als Archivar.

Infos

[1] 7-Zip-Homepage: http://www.7-zip.org/

EasyLinux 03/2006 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben