cpio

Aus Mikiwiki
Version vom 11. Februar 2011, 23:32 Uhr von Michi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Der Shell-Befehl cpio ("copy in, copy out") ist ein Archivierungsprogramm und Dateiformat aus dem Unix-Umfeld, das in seiner Funktionsweise dem Befehl tar ähnelt. Mit cpio können Dateien nacheinander in eine Archivdatei oder auf Magnetband geschrieben oder daraus gelesen werden. cpio-Dateien werden oft mit der Dateiendung ".cpio" oder ".io" versehen. Ebenso wie TAR-Dateien sind cpio-Archive grösser als die Summe der im Archiv enthaltenen Einzeldateien, sodass unter Umständen eine Datenkomprimierung sinnvoll ist. Zur Komprimierung wird unter Unix normalerweise gzip oder bzip2 verwendet.

Optionen

Option Beschreibung
-o Von der Standardeingabe wird eine Liste von Pfadnamen gelesen. Die in der Liste angegebenen Dateien werden in ein Archiv geschrieben, das auf der Standardausgabe ausgegeben wird.
-i Ein zuvor mit "cpio -o" erstelltes Archiv wird von der Standardeingabe eingelesen und ausgepackt. Dabei können bestimmte Dateien bzw. Dateimuster angegeben werden.
-p Von der Standardeingabe wird eine Liste von Pfadnamen gelesen. Die in dieser Liste angegebenen Dateien

werden in ein angegebenes Verzeichnis kopiert.

Verwendung (Linux)

Mit "ls" wird eine Auflistung des Verzeichnisinhalts von "/etc" erstellt. Diese Auflistung wird über eine pipe an "cpio" übertragen. "cpio" kopiert die Informationen in die Standardausgabe, die ans Gerät "/dev/rmt0" weitergeleitet wird.

# ls /etc | cpio -o > /dev/rmt0

Inhaltsverzeichnis in Datei schreiben.

$ cpio -itv < /dev/rmt0 > /tmp/kuhnlist

Kompletten Bandinhalt ins aktuelle Verzeichnis schreiben.

$ cpio -id --no-absolute-filenames < /dev/rmt0

Beispiel 1

Sicherung des Inhalts des aktuellen Verzeichnisses in die Datei "/tmp/file.cpio".

# find . -print | cpio -o > /tmp/file.cpio

Anzeige des Inhalts der Datei "/tmp/file.cpio".

# cpio -itv < /tmp/file.cpio

Zurückspielen der in der Datei "/tmp/file.cpio" gesicherten Dateien ins aktuelle Verzeichnis.

# cpio -idum < /tmp/file.cpio

Selektives Zurückladen einzelner Dateien und Verzeichnisse.

# cpio -idum < file.cpio "file1"
# cpio -idum < file.cpio "directory/*"

Beispiel 2

Kopieren aller Dateien mit der Endung "*.tex" aus dem Heimatverzeichnis des aktuellen Benutzers in die CPIO-Archivdatei "/tmp/tex.archiv.cpio".

$ find ~ -name '*.tex' -print | cpio -o > /tmp/tex.archiv.cpio

Auflisten des Inhalts der CPIO-Archivdatei "/tmp/tex.archiv.cpio" in "ls -l"-Form.

$ cpio -tv < /tmp/tex.archiv.cpio
-rw-r--r--   1 mik      mik            11 Nov 17 23:44 /home/mik/test.tex
-rw-r--r--   1 mik      mik             8 Nov 17 23:44 /home/mik/test2.tex
1 block

Verwendung (ReliantUnix)

Sicherung von Verzeichnis "/home" auf Band.

$ find /home -print | cpio -ovmcBO /dev/ios0/rstape006

Ansehen des Bandinhaltes und Schreiben in die Datei "/tmp/inhalt".

$ cpio -itvI /dev/ios0/rstape006 > /tmp/inhalt

Datei "/home2/sikis/db/.info.tab" wird vom Band zurückgespielt.

$ cpio -ivcumdBI /dev/ios0/rstape006 /home2/sikis/db/.info.tab

Inhaltsverzeichnis in Datei schreiben.

$ cpio -itv < /dev/ios0/rstape004 > /tmp/kuhntoc

Der Inhalt von Verzeichnis "opac" wird auf den Bildschirm ausgegeben und mit "cpio" auf das Bandlaufwerk "/dev/ios0/rstape006" geschrieben.

$ find opac -print | cpio -ovmcBO /dev/ios0/rstape006

Die Optionen "-ovmcBO" bedeuten im konkreten Fall folgendes.

Option Beschreibung
-o Standardeingabe (in diesem Fall "find opac -print") wird im Zielverzeichnis mit Status-Informationen in einem speziellen Archivformat ausgegeben.
-v Eingelesene Dateien werden auf dem Bildschirm ausgegeben.
-m Änderungsdatum wird nicht verändert.
-c Kopfdaten werden aus Kompatibilitätsgründen im US-ASCII-Format geschrieben.
-B Bei Ein- und Ausgabe wird mit einer Blockgrösse von 5120 byte gearbeitet.
-O Archiviert auf die Gerätedatei, damit bei Bandende ein Folgeband eingelegt werden kann.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger cpiowbm Enzyklopädischer Artikel
country DE.gif Ole Vanhoefer ger cpiowbm