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.
Nacheinander: ''gzip -d DATEINAME ; tar xvf DATEINAME'' Mit Pipes: ''gzip -dc DATEINAME | tar xvf -'' "Üblich": ''tar xvzf DATEINAME''
wobei die Buchstaben folgendes bedeuten:
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).
Mit Pipes: tar cvf - | gzip > DATEINAME.tar.gz
"Üblich": tar czvf DATEINAME.tar.gz
c steht für "create" (neues Archiv erstellen).
Bei vielen UNIX-Programmen ist es üblich, daß 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. :)