Dateien Archivieren mit cpio

cpio ist ein Werkzeug zur Erzeugung und Verwaltung von Dateiarchiven. cpio nutzt die Ergebnisse des ls oder find Befehls, um eine cpio-Datei zu erzeugen. cpio macht keine Komprimierung, aber Archive werden oftmals mit gzip oder anderen Kompressionsprogrammen komprimiert.

cpio hat drei grundlegende Arbeitsmodi:

  • copy-out mode – die Dateien werden in ein Archiv kopiert. Um Dateinamenslisten zu erzeugen, benutzt man den find oder ls Befehl.
  • copy-in mode – die Daten vom Archiv werden in das Dateisystem kopiert.
  • copy-pass mode – die Dateien werden von einem Verzeichnis in ein anderes kopiert.

copy-out mode

Man benutzt den copy-out mode mit der -o Option, um ein Archiv zu erzeugen. Um eine Dateinamensliste zu schaffen, benutzt man die find oder ls Befehle. Um beispielsweise eine cpio-Datei zu erzeugen, welche die Dateien des aktuellen Verzeichnisses enthält, benutzt man den folgenden Befehl:

linux cpio archiv anlegen

Die -v Option zeigt an, welche Dateien archiviert werden.

 

Noch ein Beispiel. Wir können das /home/bob/example_dir Verziechnis mit dem folgenden Befehl archivieren:

linux cpio archiv anlegen find befehl

copy-in mode

Man benutzt den copy-in mode, um die Daten vom Archiv in das Dateisystem zu kopieren. In diesem Modus liest cpio die archivierten Daten von der Standardeingabe. Die -i Option wird verwendent, um den copy-in Modus einzuschalten.

Zum Beispiel, wir können die Dateien aus dem Archiv, das wir im vorherigen Schritt erstellt haben, wiederherstellen:

linux cpio archiv extrahieren

Copy-pass mode

Man benutzt den copy-pass mode mit der Option -p, um die Dateien von einem Verzeichnis in ein anderes zu kopieren. Die Daten werden aus dem Dateisystem gelesen und sofort wieder in ein anderes Verzeichnis geschrieben, ohne dass zwischendurch ein Archiv erzeugt wird. Da zusätzliche Informationen über eine Datei (Eigentümer, Zeitmarken) enthalten sind, bevorzugt man diesen Modus vor dem Befehl cp.

Ein Beispiel:

linux cpio copy-pass mode

Im obigen Beispiel haben wir alle Dateien aus dem aktuellen Verzeichnis (/home/bob/example_dir) im /home/bob/new_directory Verzeichnis kopiert. Die Originaldateien sind erhalten.

Geek University 2022