- CPIO
-
cpio ist ein Archivierungsprogramm und Dateiformat aus dem Unix-Umfeld, welches in seiner Funktionsweise dem Kommando tar ähnelt. Die Abkürzung cpio steht für „copy in, copy out“. Mit cpio können Dateien sequentiell in eine Archivdatei oder auf Magnetband geschrieben werden. cpio-Dateien werden oft mit der Dateiendung .cpio oder .io versehen. Ebenso wie tar-Dateien sind cpio-Archive größer als die Summe der im Archiv enthaltenen Einzeldateien, so dass unter Umständen eine Datenkomprimierung sinnvoll ist. Zur Komprimierung wird unter Unix in der Regel compress, gzip oder bzip2 verwendet.
Die GNU-Version des cpio-Kommandos kann neben verschiedenen cpio-Formaten auch tar-Archivformate verwenden. Ein weiteres Programm, welches das cpio-Dateiformat verwendet, ist afio.
Inhaltsverzeichnis
POSIX-Standard
cpio ist im POSIX.1-1988-Standard enthalten. Aus späteren Versionen, ab POSIX.1-2001, wurde er aufgrund seiner maximalen Dateigröße von 2 GB bzw. 8 GB entfernt. Das neue POSIX-Kommando pax unterstützt jedoch sowohl das tar- als auch das cpio-Format. Der Name pax (Lateinisch für „Frieden“) wurde gewählt, um Frieden zwischen den beiden rivalisierenden Programmen cpio und tar zu schaffen.
Funktionsweise und Beispielaufrufe
cpio verfügt über drei Grundfunktionen, welche über die Optionen -o („Copy-Out-Modus“, Erzeugen eines Archivs), -i („Copy-In-Modus“, Extrahieren aus einem Archiv) und -p („Copy-Pass-Modus“, Kopieren von Verzeichnisbäumen) angegeben werden. cpio arbeitet grundsätzlich wie andere Unix-Filter, d. h., es erwartet seine Argumente aus dem Eingabe-Datenstrom und schickt seine Ergebnisse an den Ausgabe-Datenstrom.
Erzeugen einer cpio-Datei, welche die Dateien des aktuellen Verzeichnisses enthält:
ls | cpio -o > verzeichnis.cpio
Erzeugen einer cpio-Datei, welche die Dateien und Unterverzeichnisse des aktuellen Verzeichnisses enthält:
find . -depth -print | cpio -o > verzeichnis.cpio
Wiederherstellen von Dateien aus einem cpio-Archiv:
cpio -i < archiv.cpio
Auflisten der im Archiv enthaltenen Dateien, ohne diese zu extrahieren:
cpio -it < archiv.cpio
Kopieren des aktuellen Verzeichnisses einschließlich aller Unterverzeichnisse nach /tmp/verzeichnis (entspricht in etwa cp -r * /tmp/verzeichnis):
find . -print -depth | cpio -pd /tmp/verzeichnis
Vergleich zwischen cpio und tar
Von den beiden Unix-Kommandos cpio und tar ist tar bekannter und weiter verbreitet und unterliegt nicht der Größenbeschränkung für Archivdateien von 2 GB bzw. 8 GB. Dennoch hat cpio Vorteile zu bieten: beim cpio-Format gibt es in der Regel keine Kompatibilitätsprobleme zwischen verschiedenen Unix-Plattformen. Des Weiteren ist cpio, anders als tar, in der Lage, spezielle Unix-Dateien wie Device-Inodes im Archiv zu speichern.
Siehe auch
Weblinks
- GNU-cpio-Webseite (englisch)
- CPIO - das ultimative Backup/Restore Tool (deutsch)
Wikimedia Foundation.