cpio – Dateien aus Archiven und in Archive kopieren

Inhaltsverzeichnis

Du kennst tar vielleicht schon als Standardwerkzeug für Backups und Archivierungen unter Linux, doch cpio bietet dir eine flexible Alternative, die besonders in Skripten, Initramfs-Generierung oder bei der LPIC- und RHCSA-Zertifizierung nützlich ist. Als Sysadmin nutzt du cpio, um Dateien effizient in und aus Archiven zu kopieren, ohne auf grafische Tools angewiesen zu sein, und es integriert sich nahtlos mit Befehlen wie find oder ls.

Grundlagen von cpio

cpio steht für „copy in, copy out“ und ist ein Standard-Tool in Unix-ähnlichen Systemen, das Dateien in cpio– oder tar-Format verarbeitet. Es arbeitet in drei Hauptmodi: copy-out (-o) zum Erstellen von Archiven, copy-in (-i) zum Extrahieren und copy-pass (-p) zum direkten Kopieren zwischen Verzeichnissen. Du findest cpio auf jeder Red Hat-basierten Distribution vor, was es ideal für produktive Umgebungen macht, wo Zuverlässigkeit zählt.

Copy-out-Modus: Archive erstellen

Im Copy-out-Modus liest cpio eine Liste von Dateinamen von der Standardeingabe und erzeugt daraus ein Archiv auf der Standardausgabe.

-o oder –create: Du aktivierst damit den Modus zum Archiv-Erstellen. Diese Option liest Dateinamen von stdin, wie z. B. aus ls oder find, und schreibt das binäre Archiv-Format aus. Kombiniere sie mit -v für verbose Ausgabe, um zu sehen, welche Dateien verarbeitet werden.

ls | cpio -ov > mein_archiv.cpio

Dieser Befehl listet alle Dateien im aktuellen Verzeichnis auf und erstellt daraus ein Archiv namens mein_archiv.cpio, wobei cpio die Dateien inklusive Metadaten wie Rechte und Timestamps speichert.

-H format: Du wählst das Archiv-Format, z. B. „newc“ für modernes GNU-Format oder „ustar“ für POSIX-Kompatibilität. Diese Option sorgt für Portabilität zwischen Systemen, was bei heterogenen Serverumgebungen entscheidend ist.

find . -print | cpio -oH newc > backup.cpio

Hier sucht find rekursiv alle Dateien und übergibt sie an cpio, das ein neues Archiv im newc-Format erzeugt – perfekt für vollständige Verzeichnis-Backups.

Copy-in-Modus: Archive extrahieren

Im Copy-in-Modus extrahiert cpio Dateien aus einem Archiv und stellt sie im Dateisystem wieder her.

-i oder –extract: Du nutzt diese Option, um Dateien aus einem Archiv zu lesen. cpio liest von stdin und extrahiert passende Dateien basierend auf Mustern; ohne Muster werden alle extrahiert.

cpio -id < mein_archiv.cpio

Dieser Aufruf extrahiert alle Dateien aus mein_archiv.cpio interaktiv (-i) und verbose (-v), wobei du bei Konflikten entscheiden kannst.

-d oder –make-directories: Du erstellst fehlende Verzeichnisse automatisch während der Extraktion. Diese Option verhindert Fehler, wenn das Zielverzeichnis noch nicht existiert, und ist essenziell für Backups von ganzen Bäumen.

cpio -idv < backup.cpio

cpio extrahiert das Archiv, erstellt Verzeichnisse bei Bedarf und zeigt Fortschritt an – du siehst genau, was wiederhergestellt wird.

Copy-pass-Modus: Dateien kopieren

Der Copy-pass-Modus kopiert Dateien direkt von einer Quelle zu einem Ziel, ohne ein Archiv dazwischen.

-p oder –pass-through: Du kopierst damit Dateilisten direkt in ein Zielverzeichnis. Es behält Rechte und Timestamps bei und ist schneller als rsync in manchen Szenarien.

find . -depth -print | cpio -pvd /mnt/backup

Dieser Befehl kopiert den gesamten aktuellen Verzeichnisbaum nach /mnt/backup, erstellt Verzeichnisse (-d) und zeigt Details (-v).

Häufige Optionen und Tipps

Du erweiterst cpio mit Kompression, z. B. -z für gzip oder -j für bzip2, um Archive zu komprimieren. Für RHCSA/LPIC-Prüfungen übst du Kombinationen wie find mit cpio, da sie Backup-Skills testen. Teste immer mit -t (--list), um Inhalte ohne Extraktion zu prüfen:

cpio -it < mein_archiv.cpio

Das listet den Inhalt deines Archivs detailliert.

Du hast gelernt, cpio in allen Modi einzusetzen, Archive zu erstellen, zu extrahieren und Dateien zu kopieren. Mit Optionen wie -o, -i, -p und Ergänzungen wie -v oder -d meisterst du effiziente Backups. Integriere es in Skripte für Automatisierung und vertiefe dein Sysadmin-Wissen.

Fediverse reactions

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

230 Beiträge
14 Folgende