Der cpio-Befehl wird verwendet, um Archivdateien (z. B. *.cpio- oder *.tar-Dateien) zu verarbeiten.
cpio steht für „copy in, copy out“.
cpio führt die folgenden drei Operationen aus.
- Kopieren von Dateien in ein Archiv
- Dateien aus einem Archiv extrahieren
- Dateien an einen anderen Verzeichnisbaum übergeben
cpio nimmt beim Erstellen eines Archivs die Liste der Dateien aus der Standardeingabe und sendet die Ausgabe an die Standardausgabe.
1. *.cpio-Archivdatei erstellen
Mit cpio -ov
können Sie ein *.cpio-Archiv erstellen, das Dateien und Verzeichnisse enthält$ cd objects $ ls file1.o file2.o file3.o $ ls | cpio -ov > /tmp/object.cpio
Wie oben zu sehen ist, übergibt der ls-Befehl die drei Objektdateinamen an den cpio-Befehl und cpio generiert das object.cpio-Archiv.
2. Extrahieren Sie die *.cpio-Archivdatei
cpio-Extrakt:Um eine bestimmte *.cpio-Datei zu extrahieren, verwenden Sie cpio -iv wie unten gezeigt.
$ mkdir output $ cd output $ cpio -idv < /tmp/object.cpio
3. *.cpio-Archiv mit ausgewählten Dateien erstellen
Das folgende Beispiel erstellt ein *.cpio-Archiv nur mit *.c-Dateien.
$ find . -iname *.c -print | cpio -ov >/tmp/c_files.cpio
4. Erstellen Sie eine *.tar-Archivdatei mit cpio -F
Wir wissen bereits, wie man den tar-Befehl effektiv einsetzt.
Wussten Sie, dass Sie auch den cpio-Befehl verwenden können, um Tar-Dateien zu erstellen, wie unten gezeigt?
$ ls | cpio -ov -H tar -F sample.tar
Wie oben gesehen, können Sie, anstatt die Standardausgabe umzuleiten, den Dateinamen des Ausgabearchivs mit der Option -F.
angeben5. Extrahieren Sie die *.tar-Archivdatei mit dem cpio-Befehl
Sie können eine tar-Datei auch mit dem cpio-Befehl extrahieren, wie unten gezeigt.
$ cpio -idv -F sample.tar
6. Zeigen Sie den Inhalt der *.tar-Archivdatei
anGehen Sie wie folgt vor, um den Inhalt der *.tar-Datei anzuzeigen.
$ cpio -it -F sample.tar
7. Erstellen Sie ein *.cpio-Archiv mit den Originaldateien, auf die ein symbolischer Link verweist
cpio-Archive können mit den Originaldateien erstellt werden, auf die ein symbolischer Link verweist, wie unten gezeigt.
$ ls | cpio -oLv >/tmp/test.cpio
8. Beibehaltung der Dateiänderungszeit beim Wiederherstellen von *.cpio
Die Änderungszeit der Dateien kann erhalten bleiben, wenn wir die cpio-Archivdateien wie unten gezeigt wiederherstellen.
$ ls | cpio -omv >/tmp/test.cpio
9. Bearbeiten Sie Linux- und Kernel-Image-Dateien mit cpio
So können Sie initrd.img anzeigen, ändern und neu erstellen – Wie wir vor einiger Zeit besprochen haben, können wir auch den Befehl cpio verwenden, um die Datei initrd.img zu manipulieren.
10. Verzeichnisbaum von einem zum anderen kopieren
Mit cpio können Sie den Inhalt eines Verzeichnisses in ein anderes Verzeichnis kopieren, ohne ein Zwischenarchiv zu erstellen. Es liest die Dateiliste von der Standardeingabe und übergibt sie an das Zielverzeichnis.
Das folgende Beispiel kopiert die Dateien und Unterverzeichnisse des Objektverzeichnisses in das /mnt/out-Verzeichnis.
$ mkdir /mnt/out $ cd objects $ find . -depth | cpio -pmdv /mnt/out
Im obigen Beispiel:
- cpio-Option -p veranlasst cpio, den Pass-Through-Modus zu verwenden. Es ist, als ob cpio -o in cpio -i geleitet wird.
- cpio-Option -d erstellt führende Verzeichnisse nach Bedarf im Zielverzeichnis.