cpio

cpio

cpio ist ein Archivierungsprogramm und Dateiformat aus dem Unix-Umfeld, welches in seiner grundlegenden Funktionsweise (nicht jedoch bei der Kommandozeilenschnittstelle) 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 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 SVR4-Version des cpio-Kommandos kann neben verschiedenen cpio-Formaten, auch tar-Archivformate verwenden. GNU-cpio hat dieses Verhalten kopiert. Ein Programm, welches ein Format ähnlich zum cpio-Dateiformat verwendet, ist afio. Von afio erzeugte Archive können aber wegen der Unterschiede im Archivformat, die meist auch erst in der Mitte dieser Archive aufzufinden sind, nicht immer von cpio gelesen werden.

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 4 GB / 2 GB (beim nicht standardisierten SVR4-Format) bzw. 8 GB (beim POSIX-cpio-Format) entfernt. Diese Entscheidung wurde auch davon beeinflusst, dass das cpio-Archiv-Format nicht erweiterbar ist ohne ein komplett neues Format aus der cpio-Familie zu erzeugen. Das neue POSIX-Kommando pax unterstützt jedoch sowohl das tar- als auch das cpio-Format. Der Name pax (lateinisch für „Frieden“) wurde als Ergebnis der sogenannten Tar-Wars (die um das Jahr 1992 geführt wurden[1]) gewählt, um Frieden zwischen den beiden rivalisierenden Programmen cpio und tar zu schaffen.

Funktionsweise und Beispielaufrufe

cpio verfügt über vier Grundfunktionen, welche über die Optionen -o („Copy-Out-Modus“, Erzeugen eines Archivs), -i („Copy-In-Modus“, Extrahieren aus einem Archiv), -p („Copy-Pass-Modus“, Kopieren von Verzeichnisbäumen) und -t („List-Modus“) 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 4 GB (2 GB bei Implementierungen mit signed int für die Dateigröße) für das SVr4-Format bzw. 8 GB für das POSIX-Format. Von den Verfechtern von cpio wird angeführt, es gebe beim cpio-Format in der Regel keine Kompatibilitätsprobleme zwischen verschiedenen Unix-Plattformen. Bei näherer Betrachtung ergibt sich das jedoch als Fehlannahme, denn es gibt vier zueinander völlig inkompatible cpio-Formate und zusätzlich Probleme mit der Byte-Reihenfolge. Einen weiteren Vergleich findet man im GNU-tar-Handbuch. Dort findet man auch einiges zu den Formaten, die teilweise von GNU-cpio unterstützt werden, diese Angaben sind aber teilweise nur auf die GNU-Implementierung anzuwenden, die nicht vollständig kompatibel zum UNIX-cpio ist.

Die originale cpio-Implementierung verfügt über eine nichtdokumentierte Eigenschaft und verhält sich ähnlich wie das install-Programm. Dadurch lassen sich mit cpio Dateien über gerade benutzte Programmdateien und Bibliotheken extrahieren, ohne dass es dadurch zu Programmabstürzen kommt.

Da die cpio-Formate so definiert wurden, dass jede Erweiterung zu einem völlig neuen, inkompatiblen Archivformat führt, wurde das POSIX-cpio-Format im Jahr 2001 mit POSIX.1-2001 als nicht zukunftsorientiert bezeichnet. Das aktuelle bevorzugte POSIX-Archiv-Format heißt pax und ist eine beliebig erweiterbare Variante des tar-Formats.

Verwendung

Heutzutage findet cpio hauptsächlich Verwendung bei einem initramfs, dem Nachfolger von initrd. Auch rpm-Pakete verwenden intern das cpio-Format.

Siehe auch

Einzelnachweise

  1. http://www.opengroup.org/onlinepubs/9699919799/utilities/pax.html

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • cpio — Тип Архиватор Разработчик Проект GNU Написана на C Операционная система Unix like Последняя версия 2.11 (10 марта 2010) Лицензия …   Википедия

  • Cpio — (сокр. от англ. Copy Input/Output)  двоичный архиватор и формат файла. Утилита cpio применялась как ленточный архиватор (tape archiver), первоначально являвшийся частью PWB/UNIX, а также частью UNIX System III и UNIX System V. Однако,… …   Википедия

  • Cpio — is a binary file archiver and a file format. The cpio software utility was meant as a tape archiver that was originally part of PWB/UNIX, and that was also part of UNIX System III and UNIX System V. However, the use of its Research Unix… …   Wikipedia

  • 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… …   Deutsch Wikipedia

  • 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… …   Deutsch Wikipedia

  • cpio — Developer(s) GNU Project Stable release 2.11  (March 10, 2010; 19 months ago (2010 03 10)) …   Wikipedia

  • Cpio — est un utilitaire d archivage ainsi qu un format de fichier utilisé sur UNIX. Il était conçu à l origine comme un moyen de sauvegarder des données sur bande magnétique sur les premières versions d UNIX System III et UNIX System V. Il est… …   Wikipédia en Français

  • Cpio — Saltar a navegación, búsqueda cpio es el nombre de una utilidad binaria tanto como del formato asociado a ésta, .cpio . Este tipo de archivo fue inicialmente creado para el almacenamiento de copias de seguridad en cintas magnéticas de una forma… …   Wikipedia Español

  • cpio — En informatique, cpio est un utilitaire d archivage ainsi qu un format de fichier utilisé sur UNIX. Il était conçu à l origine comme un moyen de sauvegarder des données sur bande magnétique sur les premières versions d UNIX System III et UNIX… …   Wikipédia en Français

  • CPIO — Copy In/Out …   Acronyms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”