ABSTRACT: die grundfunktionen von tar werden kurz vorgestellt. AUDIENCE: beginners SYSTEM: any unix SECTION: basic unix commands AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt "tar" steht fuer "tape archive" weil mit diesem befehle frueher sicherungskopien auf bandlaufwerke geschrieben wurde. auch heute schreibt man damit noch auf bandlaufwerke aber der hautpzweck ist es mehere datein in eine "einzupacken". angenommen du hast ein groesseres projekt mit mehreren .html files und dazu vielleicht ein paar .jpg bilder und nach andere files die zu deinem projekt gehoeren. dann hast du die hoffentlich irgendwo in einem verzeichniss beisammen. trozdem ist die handhabung sovieler datein oft muehsam. wenn du sie z.b. auf einen anderen computer kopieren willst etc.. praktisch waere wenn man das alles zusammenpacken koennte in eine datei und bei bedarf wieder auspacken. genau das macht tar: tar -c -v -f blabla.tar blaprojekt/ wuerde eine datei mit dem namen blabla.tar erzeugen (-c fuer create). -v steht fuer verbose und listet die datein auf waehrend sie eingepackt werden. -f steht fuer file und hat als argument das file in das das archive geschrieben werden soll. danach stehen ein oder mehrere files oder verzeichnisse. (in diesem falle das verzeichnis "blaprojekt") im falle von verzeichnissen werden auch alle files in dem verzeichniss und rekursiv unterverzeichnisse miteingepackt. alternativ erlaubt tar auch die kurzform wo man alle optionen als erstes argument zusammenschreibt ohne ein minus zu machen (sonst bei befehlen eher unueblich): tar cfv blabla.tar blaprojekt/ wuerde also das selbe tun wie oben. (manche komerzielle unixe haben ein eigenes tar programm wo die switche eventuell leicht anders heissen. in diesemfalle die man page auf dem jeweiligen system konsultieren) blabla.tar ist jetzt ein grosses file das alles aus blaprojekt enthaelt. um die files aufzulisten verwendet man die option -t (fuer "test"): tar tfv blabla.tar gibt dir eine liste aller in blabla.tar enthaltenen files an. ueblicherweise ist es eine gute idee sich diese liste anzushen bevor man ein unbekanntes tar entpackt. vorallem ob die files auch in ein eigenes verzeichnis (hier blaprojekt/ ) entpackte werden ist wichitg..weil sonst hast du moeglicherweise eine grosse zahl unbekannter files in deinem aktuellen directory und alles wird dann ziemlich unuebersichtlich. also unbekannte .tar files am besten in einem eigens vorher erzeugten verzeichnis auspacken. zum auspacken verwenden wir die option -x (fuer eXtract): wir machen zuerst z.b. ein verzeichnis uebung mkdir uebung cd uebung und packen jezt das blabla.tar file von vorhin an dieser stelle aus: tar xfvz ../blabla.tar (da wir ja ins verzeichnis uebung gewechselt haben finden wir das blabla.tar von vorhin eins weiter oben in der verzeichnisshirarchie (.. ist eine abkuerzung die immer auf das uebergeordnete verzeichniss verweist)) jetzt findet sich (siehe ls ) ein verzeichnis blaprojekt in diesem uebung verzeichniss und dort drinnen sind wieder alle files aus dem blaprojekt verzeichniss... tar packt all die files in ein einziges .tar archiv (oft auch als "tar ball" bezeichnet). allerings werden die daten nur zusammengepackt und nicht komprimiert. will man die files auf floppy speicher oder uebers netzwerk verschicken ist es oft wuenschenswert diese auch zu komprimieren. das kann man entweder haendisch machen: gzip blabla.tar komprimiert das blabla.tar file und macht ein blabla.tar.gz daraus. das kennen wir ja schon. aber tar kann das gzip auch gleich beim erstellen der datei fuer uns aufrufen..dan gehts in einem. die option dafuer ist -z (fuer zip): tar cfvz blabla.tar.gz blaprojekt/ erstellt direkt das file blabla.tar.gz das auch komprimiert ist weil wir ein z angegeben haben. ebenso wuerde tar tfvz blabla.tar.gz den inhalt auflisten (-t fuer test). als kurzform fuer das eher lange .tar.gz hat sich eingebuergert die endung: .tgz zu verwenden. ein file mit der endung .tgz ist also nichts anderes wie ein .tar.gz. (natuerlich muss man nie die entsprechenden endungen wie .tar .gz oder .tgz verwenden. man kann seine datein nenenn wie man will und auch die endungen beliebig vergeben. aber es ist doch sehr hilfreich sich an diese konventionen zu halten... damit man selber gleich sieht was in der datei jetzt drinnen ist...) angenommen du willst dir ein backup aller datein unterhalb des /etc verzeichnisses aufheben. dann machen wir das z.b.: mit: tar cfvzp etc_backup_dezember_2001.tgz /etc hier haben wir noch eine neue optionen verwendet die fuer backups recht nuetzlich ist: -p fuer "preserve permission". es wird zum namen der datei auch zusaeztlich versucht die zugriffsrechte auf diese datei zu speichern. obigen befehl musst du natuerlich als root ausfuehren wenn du wirklich alle datein speichern willst weil ein normal sterbilicher user nicht alle datein in /etc lesen darf. mit: tar tfvz etc-backup-februar-2001.tgz ueberpruefst du ob dein backup auch funktioniert hat. tar hat noch eingie optionen mehr die nuetzlich sind. wie wir tar zum backup ueber netzwerk verwenden koennen etc lernen wir ein ander mal. aja noch eins: will man datein mit dem besser komprimierenden neuren bzip2 komprimieren gibt es die option -I die man anstelle von -z verwendet. tar cfvI blabla.tar.bz2 blaprojekt/ wuerde ein .bz2 komprimiertes .tar file aus den files in bla/ erstellen. (neuere tar versionen verwenden dafuer allerdings den schalter -j anstelle von -I ) EXERCISES: * lege dir ein verzeichniss an das einige files enthaelt. und mach davon ein .tgz archiv. (welchen vorteil beim entpacken hat es wenn alle files in einem .tgz file im selben unterverzeichniss sind?) * liste mit der t option alle files auf die in dem tgz enthalten sind. * mache ein eigenes unterverzeichnis "test" und entpacke dort drinnen das oben erstellte .tgz archiv. * wende gzip -t auf das .tgz file an. welches file entsteht dadurch? * liste den inhalt des so entstanden unkomprimierten .tar archivs auf. REFERENCES: man tar tar --help