Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Pack deine Sachen und Pack deine Sachen und Zusammenpressen: compress und gzip »

Unterabschnitte
  • Verzeichnisbaumkopie mit tar

Verschnüren: tar

Das Programm tar (tape archiver) kommt aus dem Bereich der Datensicherung. Aber es ist ungeheuer praktisch im Umgang mit Dateien. Mit tar kann man packen, auspacken und Pakete anschauen. Gesteuert wird die Funktion durch die erste Option: c (create) zum Erzeugen, x (extract) zum Auspacken und t zum Anschauen. Genau eine von diesen Optionen braucht tar, damit klar ist, was zu tun ist.

Da die Daten in eine Datei gepackt werden sollen, braucht man die Option f (file) für Datei. Denn dadurch arbeitet dann tar nicht auf dem Standardbandlaufwerk, sondern auf der angegebenen Datei. An dieser Stelle wird deutlich, dass tar ursprünglich für Magnetbänder entwickelt wurde. Und zu guter Letzt ist die Option v (verbose) hilfreich. Dann erzählt tar, welche Dateien bearbeitet werden.

tar -cvf ../meins.tar .

Dieser Befehl erzeugt (c) eine Datei (f) namens ../meins.tar und zeigt (v), welche Dateien er einpackt. In die Archivdatei kommen das aktuelle Verzeichnis (.) und alle Unterverzeichnisse hinein. Dass die Unterverzeichnisse mitkommen, ist bei tar Standard und muss nicht angegeben werden. Dass die Datei meins.tar im Verzeichnis vor dem aktuellen Verzeichnis liegt (..), hat seinen praktischen Grund darin, dass tar so nicht in Versuchung kommt, das gerade erzeugte Archiv selbst ins Archiv aufzunehmen. Man kann das Problem auch dadurch umgehen, dass man sein Paket im Verzeichnis /tmp packt. Dass die Datei die Endung tar hat, ist nicht zwingend, sondern dient nur Ihrer Information.

Nun sei die Datei per E-Mail oder Diskette oder wie auch immer auf den Zielrechner gelangt. Zum Auspacken hat man sie zunächst in das Verzeichnis /tmp gelegt. Um die Dateien auszupacken, wechselt man per cd in das Zielverzeichnis und weist dort tar an, das Archiv zu entpacken.

tar -xvpf /tmp/meins.tar

Beim Packen und Auspacken sollte man sehr genau darauf achten, ob die Pfadnamen der gesicherten Dateien absolut sind, also mit einem Schrägstrich beginnen. In diesem Fall hilft die Option -A, dieses abzustellen. Sicherheitshalber sollte man die Manpage zu Rate ziehen, denn einige Systeme verwenden -A zum Anhängen an existierende Archive.

Die Option p bewirkt, dass die Dateien die gleichen Rechte wie vor dem Einpacken haben. Wenn root den Befehl tar benutzt, wird die Option standardmäßig eingeschaltet. Jeder andere Benutzer muss sie explizit nennen.

Verzeichnisbaumkopie mit tar

Eine völlig andere Anwendung ist das rekursive Kopieren mit tar. Hier werden die zu kopierenden Daten in eine Pipe geschoben (tar c) und von dort an anderer Stelle wieder ausgepackt. Diese Vorgehensweise hat zwei Vorteile. Einerseits kann man so leicht ganze Verzeichnisbäume kopieren, und zweitens bleiben alle Dateiattribute erhalten.

cd /home/ernst
tar cf - . | ( cd /home/august ; tar xfp - )

Der Befehl kopiert unter Beibehaltung aller Dateiattribute alle Dateien unterhalb des Verzeichnisses /home/ernst in das Zielverzeichnis /home/august. Solche Befehlskombinationen sind auf den ersten Blick etwas erschreckend. Aber hier wird die besondere Stärke von UNIX ausgenutzt, Programme miteinander zu kombinieren. Zunächst wechselt der Befehl cd in das Startverzeichnis /home/ernst. Das ist wichtig, weil so den Dateien in der Archivdatei kein Pfadname vorangestellt wird. Der tar-Befehl links von der Pipe (|) weist dann keine Überraschung auf. Durch die Kombination f - wird statt eines Speichermediums oder einer Datei in die Standardausgabe stdout und damit in die Pipe geschrieben. Rechts von der Pipe wird also ein auspackender tar-Befehl stehen. Den kann man dort auch leicht identifizieren. Er steht in einer Klammer mit dem Befehl cd, der zunächst in das Zielverzeichnis /home/august wechselt. Nur so gelangen die Daten überhaupt an einen anderen Ort. Dort holt tar auf der rechten Seite die Daten aus der Pipe und legt sie dort ab, wo er steht. Das p gewährleistet auch für normale Anwender, dass alle Rechte der Dateien so bleiben, wie sie vor dem Kopieren waren.



« Pack deine Sachen und | Pack deine Sachen und | Zusammenpressen: compress und gzip »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: 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.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de