Handbuchseiten


 

 

Name

cpio - kopiert Dateien in und aus Archiven

Syntax

cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message] [-O [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--format=format] [--message=message] [--null] [--reset-access-time] [--verbose] [--dot] [--append] [--block-size=blocks] [--dereference] [--io-size=bytes] [--quiet] [--force-local] [--rsh-command=command] [--help] [--version] < name-list [> archive]

cpio {-i|--extract} [-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H format] [-M message] [-R [user][:.][group]] [-I [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--make-directo- ries] [--nonmatching] [--preserve-modification-time] [--numeric-uid- gid] [--rename] [-t|--list] [--swap-bytes] [--swap] [--dot] [--uncondi- tional] [--verbose] [--block-size=blocks] [--swap-halfwords] [--io- size=bytes] [--pattern-file=file] [--format=format] [--owner=[user][:.][group]] [--no-preserve-owner] [--message=message] [--force-local] [--no-absolute-filenames] [--sparse] [--only-ver- ify-crc] [--quiet] [--rsh-command=command] [--help] [--version] [pat- tern...] [< archive]

cpio {-p|--pass-through} [-0adlmuvLV] [-R [user][:.][group]] [--null] [--reset-access-time] [--make-directories] [--link] [--quiet] [--pre- serve-modification-time] [--unconditional] [--verbose] [--dot] [--dereference] [--owner=[user][:.][group]] [--no-preserve-owner] [--sparse] [--help] [--version] destination-directory < name-list

Beschreibung

cpio kopiert Dateien in ein oder aus einem cpio- oder tar-Archiv. Ein solches Archiv ist eine Datei, die andere Dateien und zusätzliche Informationen über sie (Dateinamen, Eigentümer, Zugriffsrechte und Zeitmarken) enthält. Das Archiv kann eine andere Datei auf der Platte, ein Magnetband oder eine Pipe sein. cpio hat drei grundlegende Arbeitsmodi.

Im copy-out Modus kopiert cpio Dateien in ein Archiv. Es ließt eine Liste mit Dateinamen, ein Dateiname pro Zeile, von der Standard-Eingabe und schreibt das Archiv auf die Standard-Ausgabe. Eine typische Art, wie solche Dateinamenslisten erzeugt werden ist das find Kommando. Das find-Kommando sollte dabei aber die Option -depth bekommen, um Probleme mit Zugriffsrechten auf Verzeichnisse zu vermeiden, die nicht durchsuchbar sind.

Im copy-in Modus kopiert cpio aus einem Archiv heraus oder zeigt den Inhalt eines Archivs an. Es ließt das Archiv aus der Standard-Eingabe. Jedes Argument, das keine Option ist, wird als Shell-Wildcard (Jokerzeichen) interpretiert. Nur die Dateien, die auf diese Muster passen, werden aus dem Archiv extrahiert. Werden keine Muster angegeben, so werden alle Dateien extrahiert.

Im copy-pass Modus kopiert cpio aus einem Verzeichnisbaum in einen anderen, indem die beiden vorherigen Modi (copy-out und copy-in) kombiniert werden ohne tatsächlich ein Archiv zu benutzen. Es ließt die zu kopierenden Dateinamen aus der Standard-Eingabe, das Zielverzeichnis wird als Argument der Kommandozeile übergeben.

cpio unterstützt die folgenden Archiv-Formate: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, und POSIX.1 tar. Das Binärformat ist obsolet, weil es die Informationen üer die Dateien in einem Format abspeichert, das nicht portierbar ist zwischen Maschinen mit unterschiedlicher Architektur. Das alte ASCII Format ist zwar portierbar, sollte aber nicht eingesetzt werden, auf Dateisystemen mit mehr als 65535 INodes. Das neue ASCII Format ist portierbar und kann mit allen Dateisystemgrößen umgehen, wird aber nicht von allen Versionen von cpio unterstützt. Im Augenblick steht es nur bei der GNU-Version und Unix System V R4 zur Verfügung. Das crc-Format ähnelt dem neuen ASCII Format, speichert aber zusätzlich eine crc-Prüfsumme für jede Datei ab, die cpio beim Erstellen des Archivs errechnet und beim Entpacken kontrolliert. Die HPUX Formate werden für die Kompatibilität mit HPUX-Systemen zur Verfügung gestellt, da HPUX seine Dateien in einem völlig anderen Format abspeichert.

Das tar-Format wird unterstützt, damit auch mit tar-Archiven gearbeitet werden kann. Es darf nicht angewandt werden auf tar-Archive, die Dateinamen mit mehr als 100 Zeichen enthalten. Es kann weiterhin nicht benutzt werden, um Gerätedateien in ein Archiv aufzunehmen. Das POSIX.1 tar Format kann nicht verwendet werden um Dateien zu archivieren, deren Namen länger als 255 Zeichen sind.

Standardmäßig erstellt cpio Binärformat Archive, um kompatibel zu älteren Versionen von cpio zu sein. Beim Extrahieren aus Archiven erkennt cpio das verwendete Format selbstständig. Einige der Optionen gelten nur in bestimmten Modi, siehe die Syntax-Sektion dieser Handbuchseite, um herauszufinden, welche Optionen in welchem Modus erlaubt sind.

-0, --null
Im copy-out und copy-pass Modus wird die Liste der Dateinamen durch ein Null-Zeichen statt durch einen Zeilentrenner getrennt. Damit können Dateien mit archiviert werden, die Zeilentrenner im Dateinamen haben. GNU-find ist ein Programm, das eine Liste von Dateinamen erzeugen kann, die durch Null-Zeichen getrennt sind.
-a, --reset-access-time
Die Zugriffszeitmarke der Dateien wird nach der Archivierung wiederhergestellt, so daß nicht spürbar ist, daß die Dateien gerade gelesen wurden.
-A, --append
Die Ausgabe wird an ein bestehendes Archiv angehängt. Nur gültig im copy-out Modus. Das Archiv muß eine reguläre Datei sein, die mit der -O oder -F (--file) Option angegeben wurde.
-b, --swap
Im copy-in Modus wird die Bytereihenfolge umgedreht. Damit können Daten zwischen Maschinen mit 32-Bit big-endian und little-endian Formaten ausgetauscht werden.
-B
Die IO-Blockgröße wird auf 5120 Bytes eingestellt. Standardmäßig beträgt sie 512 Byte.
--block-size=BLOCK-SIZE
Setzt die IO-Blockgröße auf BLOCK-SIZE mal 512 Byte.
-c
Das alte ASCII Format wird benutzt.
-C IO-SIZE, --io-size=IO-SIZE
Setzt die IO-Blockgröße auf IO-SIZE Byte.
-d, --make-directories
Führende Verzeichnisse werden erstellt, wenn nötig.
-E FILE, --pattern-file=FILE
Im copy-in Modus werden zusätzliche Muster für zu extrahierende oder aufzulistende Dateien aus der angegebenen Datei gelesen.
-f, --nonmatching
Kopiert nur Dateien, die nicht auf das angegebene Muster passen.
-F, --file=archive
Das Archiv wird nicht auf die Standard-Ausgabe geschrieben sondern in den angegebenen Dateinamen. Um auf ein Bandlaufwerk (oder eine Datei) eines anderen Rechners zuzugreifen, kann dem Dateinamen ein Hostname: vorangestellt werden. Der Hostname seinerseits kann einen Usernamen und ein @ Zeichen am Anfang besitzen um das remote-Drive unter der entsprechenden Userkennung zu benutzen. Typischerweise muß dazu ein Eintrag in der ~/.rhosts-Datei auf dem Fremdrechner vorliegen.
--force-local
Auch wenn der Archivdateiname (mit -F, -I oder -O angegeben) einen Doppelpunkt enthält wird er als lokaler Dateinamen interpretiert.
-H FORMAT, --format=FORMAT
Das angegebene Format wird benutzt. Gültige Formate sind:
bin
Das obsolete Binärformat (Voreinstellung im copy-out Modus).
odc
Das alte (POSIX.1) portable Format.
newc
Das neue (SVR4) portable Format, das Dateisysteme mit mehr als 65536 Inodes unterstützt.
crc
Das neue (SVR4) portable Format mit einer Prüfsumme.
tar
Das alte tar-Format.
ustar
Das POSIX.1 tar-Format. Erkennt auch GNU-tar, das ähnlich aber nicht identisch ist.
hpbin
Das obsolete Binärformat des HPUX-cpio.
hpodc
Das portable HPUX cpio-Format.
-i, --extract
Schaltet den copy-in Modus ein
-I archive
Gibt den Archiv-Dateinamen an, der statt der Standard-Eingabe benutzt werden soll. Für Zugriffe auf entfernte Rechner gilt das Selbe wie bei der -F Option.
-k
Ignoriert
-l, --link
Dateien werden gelinkt statt kopiert, wo immer das möglich ist.
-L, --dereference
Symbolische Links werden dereferenziert (Die Dateien, auf die der Link verweist werden kopiert, anstatt den Link zu kopieren).
-m, --preserve-modification-time
Die Modification-Time wird erhalten, wenn Dateien erstellt werden.
-M MESSAGE, --message=MESSAGE
Die angegebene Message wird ausgegeben, wenn das Ende eines Backup-Mediums erreicht ist. Die Meldung kann also die Aufforderung an den User enthalten, das Band (oder die Diskette) zu wechseln. Enthält die Nachricht ein %d, so wird das durch die aktuelle Volume-Nummer (beginnend mit 1) ersetzt.
-n, --numeric-uid-gid
Bei der "geschwätzigen Ausgabe" eines Inhaltsverzeichnisses werden die User- und GruppenIDs statt der User- und Gruppennamen ausgegeben. Das funktioniert insbesondere auch bei tar-Archiven.
--no-absolute-filenames
Im copy-in Modus werden alle Dateien relativ zum aktuellen Verzeichnis erstellt, auch wenn sie mit einem absoluten Pfadnamen im Archiv stehen.
--no-preserve-owner
Im copy-in und copy-pass Modus werden die Eigentümerschaft der Dateien nicht verändert. Sie behalten also die Eigentümer der User, die sie ausgepackt haben. Das ist die Voreinstellung für Normaluser.
-o, --create
Schaltet den copy-out Modus ein.
-O archive
Das Archiv wird in die angegebene Datei geschrieben, statt auf die Standard-Ausgabe. Für Zugriffe auf entfernte Rechner gilt das Selbe wie bei der -F Option.
--only-verify-crc
Wenn ein Archiv im crc-Format im copy-in Modus gelesen wird, so werden nur die Prüfsummen überprüft, anstatt die Dateien tatsächlich auszupacken.
-p, --pass-through
Schaltet den copy-pass Modus ein.
--quiet
Keine Ausgabe der Anzahl geschriebener Blöcke
-r, --rename
Dateien werden interaktiv umbenannt
-R [user][:.][group], --owner [user][:.][group]
Im copy-out und copy-pass Modus werden die Eigentümerschaft und Gruppenmitgliedschaft der zu erzeugenden Dateien auf die angegebenen Werte gesetzt. Wird die Gruppe weggelassen, aber der Doppelpunkt angegeben, so wird die Login-Gruppe des entsprechenden Users verwendet. Diese Option kann nur vom Superuser (root) verwendet werden.
--rsh-command=COMMAND
Bei der Zusammenarbeit mit mt wird mitgeteilt, welches Kommando mt benutzen soll um mit entfernten Geräten zu arbeiten, anstelle der voreingestellten Kommandos /usr/bin/ssh, /usr/bin/rsh oder dem Inhalt der Umgebungsvariable MT_RSH.
--sparse
Im copy-in und copy-pass Modus werden Dateien, die große Blöcke mit Nullzeichen enthalten als Sparse-Dateien geschrieben.
-s, --swap-bytes
Im copy-in Modus werden die Bytes jedes Halbwortes (2 Byte) vertauscht.
-S, --swap-halfwords
Im copy-in Modus werden die Halbwörter jedes Wortes (4 Byte) vertauscht.
-t, --list
Ausgabe eines Inhaltsverzeichnisses.
-u, --unconditional
Alle Dateien, werden ersetzt, ohne zu fragen.
-v, --verbose
Geschwätzige Ausgabe
-V --dot
Ein Punkt (.) wird für jede bearbeitete Datei ausgegeben.
--version
Gibt die Versionsnummer von cpio aus und beendet dann das Programm.