Handbuchseiten
Name
cpio - kopiert Dateien in und aus ArchivenSyntax
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.