Linux:Befehl:cpio

Aus ITWiki
Zur Navigation springen Zur Suche springen

1 Bezeichnung

cpio - kopiert Dateien in und aus Archiven

cpio nutzt die Ergebnisse des ls oder find Befehls, um eine cpio-Datei zu erzeugen. cpio macht keine Komprimierung, aber Archive werden oftmals mit gzip oder anderen Kompressionsprogrammen komprimiert.

cpio hat drei grundlegende Arbeitsmodus:

  • copy-out mode – die Dateien werden in ein Archiv kopiert. Um Dateinamenslisten zu erzeugen, benutzt man den find oder ls Befehl.
  • copy-in mode – die Daten vom Archiv werden in das Dateisystem kopiert.
  • copy-pass mode – die Dateien werden von einem Verzeichnis in ein anderes kopiert.

2 Übersicht

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] [--rsh-command=command] [--help] [--version] < name-list [> archive]


3 Optionen

Option Beschreibung
-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