Mit Z Archive einfacher packen und entpacken

Mit Z Archive einfacher packen und entpacken
14.01.2014 10:42

Wie waren noch gleich die Parameter, um mit tar ein xz-Archiv zu entpacken? Muss man beim Packen mit tar erst das Archiv angeben und dann das zu packende Verzeichnis oder umgekehrt? Wie war noch gleich die Syntax von unzip? Wer häufiger mit verschiedenen Packern und Archiv-Formaten hantiert, muss sich zwangsweise auch die Parameter der entsprechenden Werkzeuge merken. Überflüssig macht das Z.

Das kleine Werkzeug ist ein Wrapper für verschiedene Packprogramme. Das Shell-Skript erkennt selbstständig, was es gerade wie machen muss und delegiert diese Aufgabe an den entsprechenden Packer. Ein simples:

z linux-3.12.17.tar.xz 

reicht aus, um den aktuellen Linux-Kernel zu entpacken. Ähnlich einfach ist das Einpacken von Dateien oder kompletten Verzeichnissen.

Pseudonym

Einigen Distributionen liegt Z bereits bei, teilweise jedoch unter falschem Namen. Unter Ubuntu und Debian versteckt es sich etwa im Paket comprez und heißt dort auch comprez. Wer dieses Paket einspielt, muss daher im Folgenden z durch comprez ersetzen.

Da es sich um ein Shell-Skript handelt, lässt es sich aber auch leicht nachinstallieren: Einfach das Paket von der Homepage herunterladen, mit tar xvfz z-2.7.0.tgz entpacken und als Benutzer Root respektive Systemverwalter mit folgenden zwei Befehlen einspielen:

make install
make install.man

Jetzt kann man Z wie oben auf ein Archiv ansetzen. Sollte die Endung des Archivs .tar, .tgz, ta, t, .Z, .gz, .z, .bz2, .lz, .xz, .zip oder .jar lauten, entpackt es Z im aktuellen Verzeichnis.

Doch Vorsicht: Z löscht nach dem Entpacken das Archiv! Dieses Verhalten lässt sich Z zumindest in der aktuellen Version nicht austreiben.

Z löscht beim Entpacken eigenmächtig das Archiv.

Einpackservice

In allen anderen Fällen nimmt Z an, dass man die Datei oder ein Verzeichnis einpacken möchte. Es genügt folglich, dem Werkzeug die einzupackende Datei respektive das Verzeichnis zu nennen:

z ~/Dokumente

oder für eine Datei:

z brief.odt

Doch Vorsicht: Z löscht dabei die originale Datei beziehungsweise das Verzeichnis! Dies lässt sich in der aktuellen Version von Z ebenfalls nicht verhindern.

Übrig bleibt nur die komprimierte Datei im aktuellen Verzeichnis. Z packt dabei die Dateien standardmäßig zunächst in ein tar-Archiv und komprimiert dieses dann mit dem mittlerweile aus der Mode gekommenen compress (unter Ubuntu steckt es im Paket ncompress). Die Endung lautet .tar.Z.

Glücklicherweise lässt sich die Kompressionsmethode über einen der folgenden Parameter ändern:

  • -gz nutzt den Packer gzip, das Archiv trägt die Endung .gz
  • -I nutzt den Packer bzip2, das Archiv trägt die Endung .bz2
  • -jar nutzt den Packer zip, das Archiv trägt die Endung .jar
  • -lz nutzt den Packer lz, das Archiv trägt die Endung .lz
  • -xz nutzt den Packer xz, das Archiv trägt die Endung .xz
  • -Z nutzt den Packer compress, das Archiv trägt die Endung .Z (der Standardfall)
  • -z nutzt den Packer gzip, das Archiv trägt die Endung .z
  • -zip nutzt den Packer zip, das Archiv trägt die Endung .zip

Der folgende Befehl verpackt das Verzeichnis ~/Bilder in ein .tar.gz-Archiv:

z -gz ~/Bilder

Kommentare

Aktuelle Fragen

Samsung VG-KBD1500 - Bluetooth-Tastatur mit Touchpad mit Xubuntu 16.04.2 LTS
Linux- & BSD-UserGroup im Weserbergland, 16.08.2017 19:16, 0 Antworten
Bin grad mit "meinem Latein am Ende" darum hier mal so in den Raum geworfen. Samsung VG-KBD1500 -...
Tails verbindet nicht mit WLan
Georg Vogel, 30.07.2017 15:06, 5 Antworten
Hallo zusammen! Habe mir von Linux Mint aus einen Tails USB-Stick erstellt. Läuft soweit gut,...
Genivi for Raspberry Pi 3
Sebastian Ortmanns, 28.07.2017 10:37, 1 Antworten
I try to build a Genivi Development Platform for Rasberry Pi 3. But I always get the failures bel...
Bash awk Verständnis-Frage
Josef Federl, 22.07.2017 17:46, 2 Antworten
#!/bin/bash # Skriptdateiname = test.sh spaltennummer=10 wert=zehner awk '{ $'$spaltennummer'...
Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 3 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Internet Geschwindigkeit
Udo Teichmann, 19.08.2017 15:49
Am Samstag, den 05.08.2017, 18:20 +0200 schrieb Udo Teichmann: Liebe fleißige Helfer Vielen Dank für den Ti...
[EasyLinux-Ubuntu] Notebook wacht nicht mehr auf
Gerhard Blaschke, 19.08.2017 15:04
Hallo Liste, habe hier ein Notebook Acer Extensa 5630 mit Wheezy. Testweise habe ich es in den Ruhezustand...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 18.08.2017 08:52
Hallo Volker, Volker schrieb am 18.08.2017 um 07:33: > volker@volker-Aspire-E5-575:~$ echo $PWD &&am...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Volker Borst, 18.08.2017 07:33
Hallo Uwe, Am 16.08.2017 um 21:56 schrieb Uwe Herrmuth: > > Dann hab ich eine ganz gewagte Vermutu...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 16.08.2017 21:56
Hallo Volker, Volker Borst schrieb am 16.08.2017 um 19:22: > > echo $PS1 > > ${debian_chr...