cpio: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) |
||
Zeile 102: | Zeile 102: | ||
== Weblinks == | == Weblinks == | ||
{{ | {{Weblinks1|{{url_dewikipedia|cpio|cpio}} | ||
}} | |||
Version vom 27. März 2009, 11:12 Uhr
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. |