cpio: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) |
||
Zeile 85: | Zeile 85: | ||
{| class=wikitable width=100% | {| class=wikitable width=100% | ||
! width=10% | Schalter !! Beschreibung | |||
|- | |||
| <tt>o</tt> || Standardeingabe (in diesem Fall "find opac -print") wird im Zielverzeichnis mit Status-Informationen in einem speziellen Archivformat ausgegeben. | |||
|- | |- | ||
| <tt>v</tt> || Eingelesene Dateien werden auf dem Bildschirm ausgegeben. | | <tt>v</tt> || Eingelesene Dateien werden auf dem Bildschirm ausgegeben. |
Version vom 25. Januar 2009, 23:05 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 Schalter bedeuten im konkreten Fall folgendes.
Schalter | 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. |