![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
Es gibt auf Unix-Systemen Dutzende von Utilities für die Archivierung und Komprimierung von Dateien in unterschiedlichen Formen und Ausprägungen. Einige davon (etwa tar und compress) stammen aus der Unix-Urzeit; andere (etwa gzip) sind relativ neu. Die wichtigsten Ziele dieser Hilfsprogramme sind die Archivierung (das heißt, daß viele Dateien zwecks einfacherer Übertragung und Backups zu einer Datei zusammengefaßt werden) und die Komprimierung (um den Speicherplatz zu reduzieren, den eine Datei oder eine Gruppe von Dateien belegt).
In diesem Abschnitt wollen wir die Dateiformate und Utilities besprechen, denen Sie mit großer Wahrscheinlichkeit begegnen werden. Fast eine allgemeingültige Vereinbarung in der Unix-Welt ist zum Beispiel die Übertragung von Dateien oder Software in Form eines tar-Archivs, das anschließend mit compress oder gzip komprimiert wird. Damit Sie solche Dateien erstellen oder entpacken können, müssen Sie die notwendigen Programme kennen. Diese Tools werden meistens bei der Installation neuer Software und beim Erstellen von Backups eingesetzt - und dies sind auch die Themen der nächsten beiden Abschnitte in diesem Kapitel.
gzip ist ein schnelles und effektives Komprimierungsprogramm aus dem GNU-Projekt. Seine grundlegende Funktion besteht darin, daß es eine Datei komprimiert, die gepackte Version als dateiname.gz abspeichert und die ungepackte Originaldatei löscht. Die Originaldatei wird erst entfernt, wenn gzip erfolgreich beendet wurde; es ist kaum möglich, auf diese Weise eine Datei versehentlich zu löschen. Da es sich um GNU-Software handelt, kennt gzip natürlich mehr Optionen, als Sie sich vorstellen können, und seine Arbeitsweise kann mit Optionen auf der Befehlszeile auf vielfache Art beeinflußt werden.
Lassen Sie uns mit einer großen Datei namens hase.txt beginnen:
Um diese Datei mit gzip zu komprimieren, geben wir nur ein:
Damit ersetzen wir hase.txt durch die gepackte Datei hase.txt.gz und erhalten:
Beachten Sie, daß hase.txt nach der Beendigung von gzip entfernt wird.
Sie haben die Möglichkeit, gzip eine Liste von Dateinamen zu übergeben; es wird jede einzelne Datei komprimieren und mit der Erweiterung .gz abspeichern. (Anders als das Programm zip unter Unix und DOS erstellt gzip per Voreinstellung kein .gz-Archiv aus den Einzeldateien. Dafür gibt es den Befehl tar; lesen Sie den nächsten Abschnitt.)
Es hängt von Format und Inhalt einer Datei ab, wie gut sie sich komprimieren läßt. Viele Grafikdateien (wie GIF und JPEG) sind bereits stark komprimiert, so daß gzip hier nicht mehr viel ausrichten kann. Zu den Dateien, die mit gutem Erfolg verdichtet werden können, gehören einfache Textdateien und binäre Daten wie ausführbare Programme und Libraries. Mit gzip -l erhalten Sie Informationen zu den Dateien, die mit gzip gepackt wurden. Ein Beispiel:
Wenn wir aus einer gepackten Datei das Original wiederherstellen wollen, benutzen wir gunzip:
Dies entspricht genau der Originaldatei. Beachten Sie, daß nach dem erfolgreichen Entpacken mit gunzip die komprimierte Version gelöscht wird.
gzip speichert den Namen der ungepackten Originaldatei in der gepackten Version der Datei. Das hat zur Folge, daß der Name der Originaldatei auch dann wiederhergestellt werden kann, wenn der Name der gepackten Datei (einschließlich .gz-Erweiterung) für ein bestimmtes Dateisystem zu lang ist (etwa auf einem DOS-System mit 8.3-Dateinamen) und deshalb abgeschnitten wurde. Wenn Sie eine Datei entpacken und den Originalnamen wiederherstellen möchten, geben Sie die Option -N mit dem Befehl gunzip ein. Um den Wert dieser Option schätzen zu lernen, sehen Sie sich die folgende Befehlsfolge an:
Wenn wir jetzt gunzip wolf.txt.gz ausführen würden, hätte die entpackte Datei den Namen wolf.txt, analog zum Namen der neuen (gepackten) Datei. Mit der Option -N aber erhalten wir:
Mit gzip und gunzip lassen sich auch Daten der Standardeingabe und -ausgabe packen und entpacken. Wenn gzip ohne einen Dateinamen aufgerufen wird, versucht es, die Daten zu komprimieren, die es von der Standardeingabe liest. In ähnlicher Weise schreibt gunzip mit der Option -c entpackte Daten auf die Standardausgabe. So könnten Sie zum Beispiel eine Pipe benutzen, um die Ausgabe eines Befehls in einem Schritt zwecks Komprimierung und Speicherung in einer Datei an gzip zu leiten:
Damit erzeugen Sie eine rekursive Liste des Inhalts Ihres Home-Verzeichnisses und speichern sie in der gepackten Datei dateiliste.gz. Mit dem Befehl
lassen Sie dateiliste.gz entpacken und lenken das Ergebnis zur Ausgabe auf dem Bildschirm in einer Pipe an den Befehl more. Bei der Benutzung von gunzip -c bleibt die Datei auf der Festplatte komprimiert.
Der Befehl zcat ist identisch mit gunzip -c - Sie können sich das als eine Version von cat für gepackte Dateien vorstellen. Unter Linux gibt es sogar eine Version des Seitenbetrachters less für komprimierte Dateien: zless.
Beim Komprimieren von Dateien haben Sie die Möglichkeit, eine der Optionen -1, -2 ... bis -9 zu benutzen, um Geschwindigkeit und Grad der Komprimierung zu bestimmen. Dabei bezeichnet -1 (oder --fast) die schnellste Methode, die auch die am wenigsten verdichteten Dateien erzeugt, während -9 (oder --best) die langsamste Methode ist, aber das kompakteste Ergebnis liefert. Wenn Sie keine Option angeben, wird mit der Voreinstellung -6 komprimiert. Keine dieser Optionen wirkt sich in irgendeiner Weise auf gunzip aus; gunzip kann die Datei unabhängig vom Grad der Komprimierung wieder entpacken.
gzip ist in der Unix-Welt relativ neu. Die Programme, mit denen unter Unix am häufigsten (de)komprimiert wird, sind compress und uncompress, die noch aus der Unix-Originalversion aus Berkeley stammen. compress und uncompress sind gzip und gunzip sehr ähnlich. compress legt gepackte Dateien als dateiname.Z statt dateiname.gz ab und benutzt einen etwas weniger effektiven Kompressionsalgorithmus.
Allerdings geht der Trend unter den Anhängern der freien Software in Richtung gzip, und das aus mehreren Gründen. Zunächst einmal arbeitet gzip effektiver. Außerdem ist ein Patentstreit aufgekommen über den Kompressionsalgorithmus, den compress benutzt - das könnte dazu führen, daß Drittanbieter den compress-Algorithmus nicht mehr anwenden. Deshalb propagiert die Free Software Foundation die Benutzung von gzip und ist damit zumindest in der Linux-Gemeinde auf offene Ohren gestoßen. gzip ist auf viele Plattformen portiert worden, und weitere werden folgen. Glücklicherweise kann gunzip auch die Dateien mit dem Suffix .Z entpacken, die mit compress erzeugt wurden.
Es gibt noch ein weiteres Komprimierungs-/Dekomprimierungsprogramm, das versucht, gzip den Führungsanspruch streitig zu machen. Dieser Neuankömmling heißt bzip2 und komprimiert noch besser als gzip (etwa 10-20% besser), braucht dafür aber auch länger. Mit bzip2 komprimierte Dateien können nicht mit gunzip dekomprimiert werden und umgekehrt, und weil Sie noch nicht erwarten können, daß jeder das Programm bunzip2 installiert hat, sollten Sie sich im Moment vielleicht noch auf gzip beschränken, wenn Sie das gepackte Programm weitergeben wollen. Es lohnt sich aber, bzip2 zu installieren, weil auf immer mehr FTP-Servern die Pakete in diesem Format abgelegt werden, um Plattenplatz und Bandbreite einzusparen. Sie erkennen bzip2-Dateien an der charakteristischen .bz2-Endung.
Wir empfehlen, daß Sie gzip/gunzip oder bzip2/bunzip2 für die (De)Komprimierung benutzen. Wenn Sie einmal auf eine Datei mit dem Suffix .Z stoßen, handelt es sich wahrscheinlich um eine compress-Datei, die Sie mit gunzip wieder entpakken können.
Frühe Versionen von gzip haben Dateien mit dem Suffix .z (kleines z) statt .gz erzeugt. Um Verwechslungen mit .Z zu vermeiden, hat man dies geändert. Auf jeden Fall ist gunzip abwärtskompatibel zu einer Reihe von Dateisuffixen und Dateitypen.
tar ist ein Archivierungswerkzeug für verschiedene Anwendungszwecke, mit dem sich viele Dateien zu einer einzigen Archivdatei zusammenfassen lassen. Dabei werden solche Informationen wie Zugriffsrechte und Dateieignerschaft erhalten. Der Name tar ist die Abkürzung für tape archive, weil dieses Programm ursprünglich für das Erzeugen von Backups auf Datenbändern benutzt wurde. Wir werden allerdings sehen, daß der Gebrauch von tar absolut nicht auf das Erstellen von Backups beschränkt ist.
Der Befehl tar hat das Format:
Dabei ist Funktion ein einzelner Buchstabe, der den auszuführenden Arbeitsschritt bezeichnet, Optionen ist eine Liste der (einbuchstabigen) Optionen zu diesem Arbeitsschritt, und Dateien ist die Liste der zu bearbeitenden Dateien. (Beachten Sie, daß Funktion nicht durch eine Leerstelle von Optionen getrennt wird.)
Funktion kann folgende Werte annehmen:
Die meisten dieser Funktionen werden Sie nur selten benötigen; die am häufigsten gebrauchten sind c, x und t.
Die gebräuchlichsten Optionen sind:
Es gibt noch andere Optionen, die wir später in diesem Abschnitt besprechen werden.
Obwohl die Syntax von tar auf den ersten Blick vielleicht verwirrend erscheint, ist sie eigentlich ganz einfach. Nehmen wir an, daß wir ein Verzeichnis namens mt mit folgenden Dateien haben:
ls -l mt
total 37
-rw-r--r-- 1 root root 24 Sep 21 1993 Makefile
-rw-r--r-- 1 root root 847 Sep 21 1993 README
-rwxr-xr-x 1 root root 9220 Nov 16 19:03 mt
-rw-r--r-- 1 root root 2775 Aug 7 1993 mt.1
-rw-r--r-- 1 root root 6421 Aug 7 1993 mt.c
-rw-r--r-- 1 root root 3948 Nov 16 19:02 mt.o
-rw-r--r-- 1 root root 11204 Sep 5 1993 st_info.txt
Wir wollen jetzt den Inhalt dieses Verzeichnisses in ein tar-Archiv packen. Dazu geben wir ein:
Das erste Argument zu tar ist die Funktion (in diesem Fall c
(create) zum Erstellen). Dahinter stehen die Optionen. Wir haben als Option f mt.tar angegeben, um das resultierende tar-Archiv mt.tar zu nennen. Das letzte Argument ist die Liste der Dateien, die archiviert werden sollen; in diesem Fall haben wir den Namen des Verzeichnisses angegeben. Damit erreichen wir, daß tar alle Dateien in diesem Verzeichnis zu einem Archiv zusammenfaßt.
Beachten Sie, daß das erste Argument zu tar einer der Funktionsbuchstaben - gefolgt von einer Liste der Optionen - sein muß. Aus diesem Grunde braucht vor den Optionen kein Bindestrich (-) zu stehen, wie es bei vielen anderen Unix-Befehlen der Fall ist. Sie können bei tar einen Bindestrich einsetzen, etwa so:
aber das ist wirklich nicht notwendig. In einigen Versionen von tar muß der erste Buchstabe eine Funktion bezeichnen, zum Beispiel c, t oder x. In anderen Versionen spielt die Reihenfolge der Buchstaben keine Rolle. Schließlich gibt es auch noch sogenannte »Lang-Optionen«. Näheres hierzu sagt Ihnen die Manpage von tar.
Oft ist es eine gute Idee, die Option v zu benutzen; damit lassen Sie jede archivierte Datei anzeigen:
Wenn Sie v mehrmals angeben, erhalten Sie noch ausführlichere Informationen:
tar cvvf mt.tar mt
drwxr-xr-x root/root 0 Nov 16 19:03 1994 mt/
-rw-r--r-- root/root 11204 Sep 5 13:10 1993 mt/st_info.txt
-rw-r--r-- root/root 847 Sep 21 16:37 1993 mt/README
-rw-r--r-- root/root 2775 Aug 7 09:50 1993 mt/mt.1
-rw-r--r-- root/root 24 Sep 21 16:03 1993 mt/Makefile
-rw-r--r-- root/root 6421 Aug 7 09:50 1993 mt/mt.c
-rw-r--r-- root/root 3948 Nov 16 19:02 1994 mt/mt.o
-rwxr-xr-x root/root 9220 Nov 16 19:03 1994 mt/mt
Dies ist sehr nützlich, wenn man sich vergewissern möchte, daß tar korrekt arbeitet.
Einige Versionen von tar erwarten, daß f als letzte der Optionen angegeben wird. Das rührt daher, daß tar hinter der Option f einen Dateinamen erwartet - nämlich den Namen der tar-Datei, die geschrieben oder aus der gelesen werden soll. Falls Sie keinen Dateinamen angeben, nimmt tar aus historischen Gründen an, daß es das erste Bandlaufwerk (das heißt /dev/rmt0) benutzen soll. Im Abschnitt »Backups erstellen« in Kapitel 8, Andere Administrationsaufgaben, werden wir besprechen, wie tar zum Erstellen von Backups auf Bandlaufwerken benutzt wird. |
Jetzt sind wir soweit, daß wir die Datei mt.tar an andere Leute weitergeben können, damit diese sie auf ihrem System wieder entpacken. Dazu würden sie den Befehl:
eingeben. Damit wird das Unterverzeichnis mt angelegt, und alle ursprünglichen Dateien werden in dieses Unterverzeichnis geschrieben. Die Dateien gehören dabei dem Benutzer, der den tar-Befehl ausführt, es sei denn, man ist root, in welchem Fall der originale Benutzer beibehalten wird. Die Option x steht für »extract« (extrahieren). Wir haben wieder die Option v benutzt, um alle Dateien während des Extrahierens anzeigen zu lassen. Das erzeugt die folgende Bildschirmausgabe:
Wie wir sehen, speichert tar den Pfadnamen jeder Datei relativ zu dem Verzeichnis, in dem die tar-Datei ursprünglich erstellt wurde. Beim Erstellen des Archivs haben wir mit dem Befehl tar cf mt.tar mt nur mt als Eingabedatei angegeben, also den Namen des Verzeichnisses, in dem die einzelnen Dateien stehen. Deshalb schreibt tar dieses Verzeichnis selbst sowie alle Dateien unterhalb dieses Verzeichnisses in die tar-Datei. Beim Entpacken der tar-Datei wird das Verzeichnis mt angelegt, und die einzelnen Dateien werden dorthin geschrieben - das sind die Schritte beim Erstellen des Archivs in umgekehrter Reihenfolge.
Per Voreinstellung werden alle tar-Dateien relativ zu dem Verzeichnis entpackt, in dem Sie tar aufrufen. Wenn Sie zum Beispiel den Inhalt des Verzeichnisses /bin mit dem Befehl
archivieren wollten, würde tar die Warnung
ausgeben. Das bedeutet, daß die Dateien innerhalb des Archivs im Unterverzeichnis bin abgelegt werden. Wenn diese tar-Datei dann entpackt wird, wird zunächst das Verzeichnis bin angelegt, und zwar unterhalb des Arbeitsverzeichnisses von tar - nicht aber als /bin auf dem Zielsystem. Dies ist sehr wichtig, denn es soll schlimme Fehler beim Entpacken von tar-Dateien vermeiden. Anderenfalls würde das Entpacken einer tar-Datei, die als /bin archiviert wurde, in Ihrem Verzeichnis /bin Chaos ten. Wenn Sie den Inhalt einer solchen tar-Datei wirklich nach /bin entpacken wollten, würden Sie vom Root-Verzeichnis / aus entpacken. Mit der Option P können Sie beim Archivieren dieses Verhalten umgehen, aber wir möchten nicht empfehlen, das zu tun.
Eine andere Möglichkeit, die tar-Datei mt.tar zu erstellen, wäre, zunächst mit cd in das Verzeichnis mt zu wechseln und dann folgendes einzugeben:
Auf diese Weise würde das Unterverzeichnis mt nicht in der tar-Datei gespeichert werden; beim Entpacken würden die einzelnen Dateien direkt in Ihrem aktuellen Verzeichnis landen. Es gehört zu den Feinheiten der Etikette bei der Arbeit mit tar, daß man Dateien immer so archiviert, daß in der tar-Datei ein Unterverzeichnis enthalten ist - wie wir das in unserem ersten Beispiel mit tar cvf mt.tar mt gezeigt haben. Aufgrund dessen wird beim Entpacken des Archivs das Unterverzeichnis angelegt, und die Dateien werden dorthin geschrieben. Auf diese Weise können Sie sicherstellen, daß die Dateien nicht direkt in Ihrem aktuellen Verzeichnis stehen - sie verschwinden im Unterverzeichnis und können keine Verwirrung ten. Diese Arbeitsweise erspart es außerdem der Person, die das Entpacken vornimmt, ein Verzeichnis anlegen zu müssen, um das Archiv dort zu entpacken (wenn ein eigenes Verzeichnis gewünscht wird). Selbstverständlich wird es jede Menge Situationen geben, in denen Sie kein eigenes Verzeichnis anlegen wollen - soviel zum Thema tar-Etikette.
Beim Erstellen von Archiven können Sie natürlich eine Liste der Dateien oder Verzeichnisse an tar übergeben, die archiviert werden sollen. In unserem ersten Beispiel haben wir tar nur das eine Verzeichnis mt angegeben, aber im vorherigen Abschnitt haben wir den * als Wildcard benutzt, den die Shell zur Liste aller Dateien im aktuellen Verzeichnis expandiert.
Vor dem Entpacken eines Archivs empfiehlt es sich, anhand des Inhaltsverzeichnisses festzustellen, wie das Archiv gepackt wurde. Auf diese Weise können Sie feststellen, ob Sie selbst ein Unterverzeichnis anlegen müssen, in dem Sie das Archiv dann entpacken. Mit dem Befehl
erhalten Sie das Inhaltsverzeichnis der genannten tar-Datei. Beachten Sie, daß Sie mit der Funktion t nur ein v angeben müssen, um die ausführliche Liste zu erhalten:
tar tvf mt.tar
drwxr-xr-x root/root 0 Nov 16 19:03 1994 mt/
-rw-r--r-- root/root 11204 Sep 5 13:10 1993 mt/st_info.txt
-rw-r--r-- root/root 847 Sep 21 16:37 1993 mt/README
-rw-r--r-- root/root 2775 Aug 7 09:50 1993 mt/mt.1
-rw-r--r-- root/root 24 Sep 21 16:03 1993 mt/Makefile
-rw-r--r-- root/root 6421 Aug 7 09:50 1993 mt/mt.c
-rw-r--r-- root/root 3948 Nov 16 19:02 1994 mt/mt.o
-rwxr-xr-x root/root 9220 Nov 16 19:03 1994 mt/mt
An dieser Stelle wird nichts entpackt - wir betrachten lediglich das Inhaltsverzeichnis des Archivs. An den Dateinamen können wir ablesen, daß dieses Archiv alle Dateien im Unterverzeichnis mt enthält. Beim Entpacken dieser tar-Datei wird also das Verzeichnis mt angelegt, und alle Dateien werden dorthin geschrieben.
Es ist auch möglich, einzelne Dateien aus einem tar-Archiv zu extrahieren. Dazu geben Sie ein:
wobei datei(en) die Liste der zu extrahierenden Dateien ist. Wir haben bereits gezeigt, daß ohne die Angabe von datei(en) das ganze Archiv entpackt wird.
Damit Sie einzelne Dateien extrahieren können, müssen Sie den kompletten Pfadnamen angeben, wie er in der tar-Datei steht. Wenn wir uns zum Beispiel nur die Datei mt.c aus dem oben angeführten Archiv vornehmen wollten, würden wir eingeben:
Als Ergebnis würde das Unterverzeichnis mt erstellt und die Datei mt.c dorthin geschrieben werden.
tar kennt noch viel mehr Optionen, als wir hier erwähnt haben. Bisher haben wir die Möglichkeiten besprochen, die Sie wohl am häufigsten gebrauchen werden, aber insbesondere das tar von GNU verfügt über Erweiterungen, die es zu einem idealen Werkzeug zur Erstellung von Backups und dergleichen machen. In den Manpages zu tar sowie im folgenden Abschnitt finden Sie weitere Informationen hierzu.
tar komprimiert die Dateien, die es in seinen Archiven ablegt, in keiner Weise. Wenn Sie ein Archiv aus drei Dateien zu 200 KB erstellen, ist das Ergebnis ein Archiv von ungefähr 600 KB. Es ist gängige Praxis, tar-Archive mit gzip (oder dem älteren compress) zu komprimieren. Mit folgenden Befehlen könnten Sie eine »gzip-te« tar-Datei erstellen:
Allerdings ist das mühselig und erfordert, daß Sie genug Speicherplatz haben, um die unkomprimierte tar-Datei zu speichern, bevor Sie mit gzip gepackt wird.
tar bietet eine interessante Möglichkeit, ein Archiv auf die Standardausgabe zu schreiben. Wenn Sie - als zu lesende oder zu schreibende tar-Datei angeben, wird tar die Standardeingabe oder -ausgabe benutzen. Dies können wir bei der Erstellung eines gepackten Archivs trickreich ausnutzen. Wir können zum Beispiel eine »gzip-te« tar-Datei erstellen, indem wir
eingeben. Dabei erstellt tar zunächst ein Archiv aus den benannten dateien und schreibt es auf die Standardausgabe; danach liest gzip die Standardeingabe, komprimiert sie und schreibt das Ergebnis auf seine eigene Standardausgabe; schließlich lenken wir die komprimierte tar-Datei in tar-datei.tar.gz.
eine solche tar-Datei entpacken. Dabei dekomprimiert gunzip zunächst das genannte Archiv und schreibt das Ergebnis auf die Standardausgabe. Diese wird dann von tar als Standardeingabe gelesen und entpackt. Unix macht Spaß - finden Sie nicht?
Natürlich sind solche Befehlsfolgen immer sehr mühsam einzugeben. Glücklicherweise kennt die GNU-Version von tar die Option z, mit der automatisch »gzip-te« Archive erstellt oder entpackt werden. (Wir haben die Besprechung dieser Option bis jetzt zurückgestellt, damit Sie ihre Vorteile wirklich zu schätzen lernen.) Wir könnten zum Beispiel mit den Befehlen
»gzip-te« tar-Dateien erstellen und entpacken. Achten Sie darauf, daß Sie solche Dateien mit dem Suffix .tar.gz (oder dem auch häufig verwendeten .tgz, das auch auf Systemen mit eingeschränkten Dateinamensfähigkeiten funktioniert) benennen, damit ihr Format offensichtlich wird. Die Option z kann auch zusammen mit anderen Funktionen eingesetzt werden, wie etwa mit t
.
Nur die GNU-Version von tar unterstützt die Option z. Wenn Sie das tar eines anderen Unix-Systems benutzen, müssen Sie eventuell eine der längeren Befehlsfolgen eingeben, um dieselbe Aufgabe zu bewältigen. Fast alle Linux-Systeme benutzen das GNU-tar.
Wenn Sie tar zusammen mit bzip2 verwenden wollen, müssen Sie tar mitteilen, welches Komprimierungsprogramm Sie verwenden wollen:
Letzteres funktioniert nur mit neueren tar-Versionen, die die Option I bereits kennen.
Mit dem hier Gesagten im Hinterkopf könnten Sie kurze Shell-Skripten oder Aliase schreiben, die Standard-tar-Dateien für Sie erstellen und entpacken. Unter bash könnten Sie folgende Funktionen in Ihre .bashrc einfügen:
Mit Hilfe dieser Funktionen würden Sie
eingeben, um ein einzelnes Verzeichnis in ein komprimiertes Archiv zu verwandeln. Die Archivdatei bekäme den Namen verzeichnis.tar.gz. (Achten Sie darauf, daß der Verzeichnisname nicht mit einem Schrägstrich endet; in dem Fall würde das Archiv als .tar.gz unterhalb des angegebenen Verzeichnisses erstellt.) Um den Inhalt einer komprimierten tar-Datei anzuzeigen, geben Sie ein:
Wenn Sie ein solches Archiv entpacken möchten, geben Sie ein:
Wir haben bereits gesagt, daß tar die Eignerschaft und Zugriffsrechte der Dateien eines Archivs, ebenso wie die Verzeichnisstruktur und alle Links erhält. Deshalb ist es hervorragend geeignet, einen kompletten Verzeichnisbaum von einer Stelle im System zu einer anderen zu kopieren oder umzustellen (das funktioniert sogar zwischen verschiedenen Systemen). Mit der Option -, die wir oben beschrieben haben, können Sie eine tar-Datei auf die Standardausgabe schreiben, von wo aus sie dann als Standardeingabe an anderer Stelle im System wieder gelesen und entpackt werden kann.
Nehmen wir an, daß ein Verzeichnis existiert, das die beiden Unterverzeichnisse from-zeugs und to-zeugs enthält. Unter from-zeugs befindet sich ein kompletter Verzeichnisbaum mit symbolischen Links usw. - es wäre schwierig, so etwas mit einem rekursiven cp wiederherzustellen. Um den kompletten Verzeichnisbaum unterhalb von from-zeugs nach to-zeugs zu bewegen, könnten wir eingeben:
Einfach und elegant, nicht wahr? Wir haben uns in das Verzeichnis from-zeugs begeben, eine tar-Datei dieses Verzeichnisses erzeugt und sie auf die Standardausgabe geschrieben. Dieses Archiv wurde von einer Sub-Shell eingelesen (das sind die Befehle zwischen den runden Klammern); die Sub-Shell springt mit cd in das Zielverzeichnis ../to-zeugs (also relativ zu from-zeugs) und führt dann tar xvf aus, indem die Standardeingabe gelesen wird. Bei diesem ganzen Vorgang wird keine tar-Datei auf die Festplatte geschrieben; die Daten werden lediglich durch eine Pipe von einem tar-Prozeß zu einem anderen geschickt. Mit der Option v beim zweiten tar-Prozeß haben wir jede Datei anzeigen lassen, die entpackt wird. Auf diese Weise konnten wir verfolgen, daß der Befehl ordnungsgemäß funktioniert.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2000, O'Reilly Verlag