gzip -cd foo.cpio.gz | cpio -idmv
- i: extrahieren (Eingabe)
- d: Verzeichnisse erstellen
- m: mtime bewahren
- v: verbose
Ich habe eine Unix-Softwaredistribution als komprimierte Cpio-Datei erhalten. Was ist der beste Befehl zum Extrahieren der Dateien?
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive cd archive zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Obwohl dies eine alte Frage ist, wird sie bei Google hoch angezeigt. Ich dachte, ich könnte sie aktualisieren. Ich stimme der akzeptierten Antwort im Allgemeinen zu, aber Sie sollten "--no-absolute-Dateinamen" hinzufügen, sofern Sie nicht beabsichtigen, wichtige Systemdateien auf Ihrem Computer zu überschreiben. Ich persönlich bevorzuge "zcat" gegenüber "gzip -cd" oder "gunzip -c".
Beachten Sie schließlich, dass Sie cpio als root ausführen müssen (z. B. sudo), wenn Sie ein Root-Dateisystem extrahieren, das Geräteknoten enthält.
Diese Wikipedia-Seite cpio
hat einige gute Notizen.
Weitere Informationen finden Sie im cpio
Handbuch .
Ein Link von derselben Wikipedia-Seite behandelt den Vergleich mit tar
Archiven .
Und hier ist ein Beispiel für die Verwendung cpio
mit dem tar
Format .
For example, to extract the archived contents of /etc/httpd/ to the current directory, creating subdirectories ./etc/httpd/
mkdir restored-etc-httpd cd restored-etc-httpd zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
The accepted answer and Matt's were both helpful to me but I was stumped for a while because of three details:
--no-absolute-filenames
must precede the pattern on the command line/
from filenames, the matching pattern must also omit the leading /