Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

cpio - Dateien und Dateiverzeichnisse ein- und auslagern

&pagelevel(4)&pagelevel

(copy in and out)


Das Kommando cpio hat 3 Funktionen:

  • Es kopiert eine oder mehrere Dateien in eine Archivdatei (Format 1)

  • Es holt Dateien aus einem zuvor erstellten Archiv (Format 2)

  • Es kopiert Dateien in ein Dateiverzeichnis (Format 3)

Das Kommando cpio wurde aus dem XPG4-Standard zurückgezogen. Es wird durch das Kommando pax abgelöst.

In Zukunft sollte nur noch das Kommando pax verwendet werden, da cpio nur noch aus Kompatibilitätsgründen unterstützt wird.


Syntax


Format 1:cpio -o[Bacv][ -D archiv]
Format 2:cpio -i[Bcdmrtuvf][ -D archiv][ muster...]
Format 3:cpio -p[adlmruv] dvz

Bei der Darstellung der drei Formate werden nur die Hauptoptionen -o, -i und -p beschrieben.
Die übrigen Optionen sind im Abschnitt „Zusatz- und Einzeloptionen“ erläutert. Bei den jeweiligen Formaten ist angegeben, welche Zusatz- und Einzeloptionen Sie verwenden können.

Dateien auslagern
Format 1:cpio -o[Bacv][ -D archiv]


Zusatzoption

Bacv

Einzeloption

-D archiv

-o  

(o - out)
cpio liest von der Standard-Eingabe eine Reihe von Pfadnamen einfacher Dateien und kopiert diese Dateien zusammen mit Status-Informationen in einem speziellen Archiv-Format auf die Standard-Ausgabe oder in das mit der Einzeloption -D angegebene Archiv. Das Archiv-Format ist das gleiche wie es vom Kommando pax -x cpio erstellt wird. Dabei wird die Ausgabe auf ein Vielfaches von 512 Byte aufgefüllt. Die Anzahl der 512-Byte-Blöcke gibt cpio auf die Standard-Fehlerausgabe aus.


Dateien einlagern
Format 2:cpio -i[Bcdmrtuvf][ -D archiv][ muster...]


Zusatzoption

Bcdmrtuvf

Einzeloption

-D archiv

-i

(i - in)
cpio liest von der Standard-Eingabe oder von dem mit der Einzeloption -D angegebenen Archiv, das zuvor mit cpio -o erzeugt worden sein muss und holt aus der Eingabe diejenigen Dateien, deren Name zu muster (siehe unten) passen.

Diese Dateien werden abhängig von den angegebenen Optionen in den aktuellen Dateiverzeichnis-Baum kopiert. Die so eingelagerten Dateien erhalten die gleichen Zugriffsrechte wie die zuvor mit cpio -o ausgelagerten Dateien. Eigentümer und Gruppennummer sind die des Benutzers, der cpio - i aufruft.

Nur wenn der Systemverwalter cpio -i aufruft, erhalten die eingelagerten Dateien dieselbe Eigentümer- und Gruppennummer, wie sie die mit cpio -o ausgelagerten Dateien hatten.

Gerätedateien dürfen nur von Systemverwalter extrahiert werden.

muster

Mit muster legen Sie fest, welche Dateien aus dem Archiv extrahiert werden. Zur Angabe von muster können Sie alle Shell-Sonderzeichen zur Generierung von Dateinamen verwenden (siehe Abschnitt „Dateinamen-Erzeugung“).

Ist muster nicht angebenen, werden alle Dateien aus dem Archiv extrahiert.


Dateien in ein Dateiverzeichnis kopieren
Format 3:cpio -p[adlmruv] dvz


Zusatzoption

adlmruv

-p  

(p - pass)
cpio liest von der Standard-Eingabe eine Reihe von Pfadnamen einfacher Dateien und kopiert sie abhängig von den angegebenen Optionen in das Dateiverzeichnis dvz.

Die Anzahl der kopierten Blöcke von 512 Byte gibt cpio auf die Standard-Fehlerausgabe aus.

dvz

Name des Dateiverzeichnisses, in das die Dateien kopiert werden. Dieses Dateiverzeichnis muss auch dann bereits vorhanden sein, wenn die Zusatzoption -d angegeben wird.


Zusatz- und Einzeloptionen

Die folgenden Zusatzoptionen können in beliebiger Reihenfolge angegeben werden. Mit Ausnahme der Einzeloption -D müssen sie ohne Leerzeichen direkt an die Hauptoption -o,-i oder -p angefügt werden.

a

(a - access time)
Nach dem Kopieren wird das Zugriffsdatum für die Eingabedateien neu gesetzt. Wenn auch die Zusatzoption l gesetzt ist, dann wird das Zugriffsdatum für die Dateien, auf die es Verweise gibt, nicht neu gesetzt.

B

(B - block)
Bei der Ein- und Ausgabe wird mit einer Blockgröße von 512 Byte gearbeitet. Diese Option ist nur für Gerätedateien mit direktem Zugriff (raw devices) sinnvoll.

Diese Zusatzoption darf nicht gemeinsam mit der Hauptoption -p verwendet werden.

c

(c- compatible)
cpio schreibt oder liest die Information im Header des Archivs aus Kompatibilitätsgründen in Zeichenform.

d(d - directory)
Unterverzeichnisse werden automatisch angelegt, wenn notwendig.
fEs werden nur Dateien extrahiert, auf die das angebene muster nicht passt.
l(l - link)
Diese Option ist nur zusammen mit der Hauptoption -p zu verwenden.
Die Dateien werden nicht kopiert, sondern es werden nur Verweise für sie eingetragen.

m

(m - modification time)
Das alte Änderungsdatum der Datei bleibt erhalten.
Diese Zusatzoption ist für Dateiverzeichnisse unwirksam.
Die Zusatzoptionen m und a dürfen Sie nicht gemeinsam angeben, da sie sich gegenseitig ausschließen.

r

(r - rename)
Die Dateien können beim Extrahieren interaktiv umbenannt werden.
cpio fragt bei jeder Datei nach einem neuen Namen.

Wenn Sie mit einer Leerzeile antworten (Eingabetaste drücken), wird diese Datei nicht umbenannt.

Wenn die Antwort aus einem Punkt (.) besteht, wird die Datei ohne Namensänderung kopiert.

Ansonsten wird der Name der Datei auf den Inhalt der Antwort geändert.

t

(t - table of contents)
cpio gibt ein Inhaltsverzeichnis des Archivs aus.
Es werden keine Dateien kopiert.

u

(u - unconditional)
Eine bereits vorhandene Datei wird beim Kopieren ersetzt, auch wenn die vorhandere Datei ein neueres Datum hat als die zu kopierende Datei.

Wenn die Zusatzoption u nicht angegeben ist, wird die bereits vorhandene Datei nicht überschrieben.

v(v - verbose)
cpio gibt die Namen der bearbeiteten Dateien aus.
Wird v zusammen mit der Zusatzoption t angegeben, so werden zusätzliche Informationen über die bearbeiteten Dateien ausgegeben.
-D archivarchiv bezeichnet die Archivdatei, in die Dateien eingelagert bzw. aus der Dateien ausgelagert werden sollen.
Diese Archivdatei wird anstelle von Standard-Eingabe bzw. Standard-Ausgabe verwendet.


Fehler

Old format cannot support expanded types on file

Sie haben die Option -c nicht angegeben. cpio verwaltet aus Kompatibilitätsgründen die Indexnummer (I-Node) einer zu kopierenden Datei so, dass Indexnummern über 64 Kbyte nur bearbeitet werden können, wenn Sie die Option -c angeben.


directories are not being created

Bei Format 2 haben Sie die Option -d nicht angegeben.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos cpio:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_COLLATE

Legt die internationale Umgebung für das Verhalten von Bereichen, Äquivalenzklassen und Zeicheneinheiten in erweiterten regulären Ausdrücken für ja/nein-Abfragen fest.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten).

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel 1

Alle Dateien im aktuellen Dateiverzeichnis, deren Namen mit mb beginnen, sollen in eine Archivdatei mailarchiv ausgelagert werden:

$ find . -name 'mb*' -print | cpio -o -D mailarchiv
15776 blocks


Das find-Kommando durchsucht das aktuelle Verzeichnis nach Dateinamen, die mit mb beginnen und schreibt diese auf Standard-Ausgabe, die durch das Pipe-Zeichen | mit der Standard-Eingabe von cpio verbunden ist. cpio -o liest die Dateinamen und kopiert die entsprechenden Dateien zusammen mit Status-Informationen in die Archivdatei mailarchiv (Option -D). Nach der Ausführung gibt cpio die Anzahl der kopierten Blöcke auf die Standard-Fehlerausgabe aus.

Beispiel 2

Das Inhaltsverzeichnis der Archivdatei mailarchiv soll ausgegeben werden:

$ cpio -it -D mailarchiv
mbox
mbox.new
mbox.old
15776 blocks

Beispiel 3

Es soll eine Kopie des Dateiverzeichnisses dir.old mit allen Unterverzeichnissen erstellt werden. Die Kopie soll den Namen dir.new enthalten:

$ cd dir.old
$ find . -print | cpio -pdl ../dir.new


Durch den cd-Aufruf wechseln Sie in das Dateiverzeichnis dir.old. Das find-Kommando durchsucht dann dieses Dateiverzeichnis und alle untergeordneten Dateiverzeichnisse und gibt die Namen aller gefundenen Dateien auf die Standard-Ausgabe aus. Durch das Pipe-Zeichen | ist die Standard-Ausgabe von find mit der Standard-Eingabe von cpio verbunden. cpio liest die Namen und kopiert die Dateien in das Dateiverzeichnis dir.new, das bereits vorhanden sein muss (im Beispiel auf gleicher Ebene im Dateibaum wie dir.old). Wenn es erforderlich ist, werden Unterverzeichnisse angelegt (-d), d.h. rekursiv werden auch alle Unterverzeichnisse von dir.old kopiert. Da die Option -l angegeben ist, werden Dateien wenn möglich nicht kopiert, sondern es werden Verweise eingerichtet.

Siehe auch

ar, cat, echo, find, ls, pax, tar