tar

tar ist ein Programm aus der Unix-Welt, das die überaus simple Aufgabe hat, alle ihm als Parameter übergebenen Dateien in einen kontinuierlichen Datenstrom umzuwandeln -- in ein Archiv oder tarchiv, wie es auch heißt. Diese Daten lassen sich dann auf Speichermedien unterbringen, die von Natur aus kein Dateisystem zulassen, weil ein wahlfreier Zugriff nicht möglich ist -- allen voran Bandlaufwerke, Streamer. Daher auch der Name, "tar" heißt nichts anderes als "Tape Archiver".

Hierbei findet noch keinerlei Kompression statt -- dafür ist ein anderes Programm zuständig, ganz konform zur Unix-Philosophie "für jede Aufgabe ein kleines Programm aus dem Werkzeugkasten, das seine Aufgabe dann aber auch perfekt beherrscht". Üblich ist gzip, daher die Endung .gz, und da GZip nur einzelne Dateien verarbeitet, ist es üblich, tar-Archive mit gzip zu komprimieren. Die Endung ist dann .tar.gz oder .tgz (um konform zur DOS-8+3-Beschränkung zu bleiben).

Seit einiger Zeit etablieren sich langsam einige andere Programme zur Komprimierung, da `gzip' zwar rasend schnell ist, aber ziemlich mies komprimiert (das liegt vor allem daran, daß gzip für Systeme mit vergleichsweise sehr wenig Speicher konzipiert wurde). BZip (block sorting zip, liebevoll "better zip" genannt) ist eins davon, mittlerweile als bzip2 bekannt, übliche Endung .bz2. Hat man es nicht, würde es sich lohnen, es ist zwar nicht so schnell beim Komprimieren (Faktor 3 bis 10, je nach Rechner), komprimiert dafür aber oft um 30-40% besser (meine Erfahrungswerte). Und oft werden Softwarepakete auf ftp-Servern schon im .bz2-Format angeboten, das spart jede Menge Übertragungszeit.

Entpacken eines tar.gz Archives (drei der Möglichkeiten)

wobei die Buchstaben folgendes bedeuten:

Entpacken eines ''tar.bz2'' Archives

Wie oben, nur mit "j" statt "z" und "bunzip2" statt "gzip", also z.B.: tar xvjf DATEINAME

bzip2 (better zip) komprimiert deutlich besser, aber ist auch um Größenordnungen langsamer beim Packen (beim Entpacken nicht unbedingt).

Packen eines tar.gz / tar.bz2 Archives

c steht für "create" (neues Archiv erstellen).

Bei vielen UNIX-Programmen ist es üblich, dass falls "-" als Dateiname angegeben wird, aus der Standard-Ein/Ausgabe gelesen/geschrieben wird. Somit ist auch ein Piping von komprimierten Daten zulässig.

Übrigens: Fast jedes Linux-Programm kommt mit .gz Dateien problemlos zurecht. Hat man z.B. haufenweise Postscript (*.ps) Dateien, die naturgemäß oft relativ gross sind, oder Textdateien, kann man die ruhig alle kurz mal mit gzip -9 * durch die Kompresse jagen. Programme wie Ghostview, GV, & Co kommen damit absolut problemlos klar. Und Desktop- System wie KDE machen das sowieso alles transparent. :)

und für Mausschubser unter KDE

Die folgende Datei (TAR.desktop) in $KDEDIR/share/apps/konqueror/servicemenus kopieren:

[Desktop Entry]
ServiceTypes=inode/directory

Actions=tarbzing;targzing

[Desktop Action tarbzing]
Name=Create tar.bz2-Archiv
Name[de]=Ein tar.bz2-Archiv erstellen
Icon=/opt/kde2/share/icons/hicolor/16x16/mimetypes/tgz.png
Exec=mkdir /var/tmp/$$/; cp -r %u /var/tmp/$$; cd /var/tmp/$$; tar cIf %u.tar.bz2 * 2> /dev/null; kdialog --msgbox "Archiv erstellt"; rm -r /var/tmp/$$

[Desktop Action targzing]
Name=Create tgz-Archiv
Name[de]=Ein tgz-Archiv erstellen
Icon=/opt/kde2/share/icons/hicolor/16x16/mimetypes/tgz.png
Exec=mkdir /var/tmp/$$/; cp -r %u /var/tmp/$$; cd /var/tmp/$$; tar czf %u.tgz * 2> /dev/null; kdialog --msgbox "Archiv erstellt"; rm -r /var/tmp/$$

Mit einem Rechtsklick auf einen Ordner lässt sich dieser dann "Verpacken".

zip, rar, ace & co

Das alles gibt es natürlich auch für Linux:

ToDo: Informationen zu tar, gzip und bzip2 entsprechend verschieben

ArchivDateien (zuletzt geändert am 2007-12-23 22:45:15 durch localhost)