Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was sind die drei Betriebsmodi von Linux cpio?
cpio verfügt über drei Betriebsmodi: 1. Kopiermodus, der zum Packen von Sicherungsdateien und Kopieren der Dateien in das Archivpaket verwendet wird. 2. Kopiermodus, der zum Wiederherstellen von Dateien aus Archivpaketdateien verwendet wird Standard Geben Sie das gelesene Archivpaket ein, um die Dateien im Archivpaket auszulesen oder den Inhalt des Archivpakets aufzulisten. 3. Der Copy-Pass-Modus wird verwendet, um Dateien von einem Verzeichnisbaum in einen anderen zu kopieren.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Unter Linux ist cpio ein Tool zur Datensicherung und -wiederherstellung, das zum Erstellen von cpio-Archivdateien, zum Extrahieren von Dateien aus Archivdateien oder zum Kopieren von Dateien von einem Verzeichnis in ein anderes verwendet wird. Die generierte Archivdatei kann eine Festplattendatei sein oder auf ein Datenstreaming-Medium wie ein Band geschrieben werden. cpio kann nicht nur cpio-Archivdateien im Binär- und ASCII-Header-Datenformat verarbeiten, sondern auch Archivdateien in verschiedenen TAR-Formaten lesen und schreiben. Um die Kompatibilität aufrechtzuerhalten, erstellt cpio Archivdateien normalerweise weiterhin im binären Header-Datenformat, sofern nicht anders angegeben.
cpio ähnelt dem Befehl tar. Er kann Dateien im cpio- oder tar-Format kopieren und in Archivpaketdateien verpacken oder Dateien aus Archivpaketdateien kopieren. Archivpaketdateien können Dateien auf der Festplatte oder Gerätedateien wie Bänder sein.
Beim Extrahieren von Dateien aus Archivdateien kann der Befehl cpio automatisch erkennen, welche Archivdatei gelesen wird, und kann auch Archivdateien mit unterschiedlichen Bytereihenfolgen lesen, die in verschiedenen Systemen erstellt wurden.
cpio verfügt über drei Betriebsmodi, wie in der folgenden Tabelle dargestellt:
cpio drei Betriebsmodi | |
---|---|
Betriebsmodus | Modusbeschreibung |
Kopieren- Out-Modus | Dieser Modus wird zum Packen von Sicherungsdateien verwendet. cpio kopiert die Dateien in das Archivpaket. Die von cpio zu packenden Dateinamen stammen aus der Standardeingabe und es wird eine Liste mit Dateinamen aus der Standardeingabe abgerufen, einer pro Zeile. Im Allgemeinen erfolgt die Standardeingabe an die Ausgabe des anderen Befehls im Allgemeinen über die Pipeline. Die gebräuchlichste Methode besteht darin, mit dem Befehl „find“ eine Liste von Dateinamen zu erstellen und diese dann an cpio weiterzuleiten. Dadurch kann cpio erkennen, woher die zu sichernden Daten stammen. Sie müssen nach find die Option - Depth hinzufügen, um die Probleme zu reduzieren, die durch die Eingabe von Verzeichnissen ohne Zugriffsberechtigungen entstehen. Standardmäßig schreibt cpio Archivpaketdateien in die Standardausgabe, daher müssen Sie das Umleitungssymbol > oder >> verwenden, um die Archivpaketdatenausgabe in eine Datei umzuleiten. |
Einkopiermodus | Dieser Modus wird zum Wiederherstellen von Dateien aus archivierten Paketdateien verwendet. cpio liest das Archivpaket von der Standardeingabe, liest die Dateien im Archivpaket oder listet den Inhalt des Archivpakets auf. cpio schreibt die aus dem Archivpaket gelesenen Daten in die Standardausgabe. |
Copy-Pass-Modus | cpio kopiert Dateien von einem Verzeichnisbaum in einen anderen. Es kombiniert Kopier- und Kopiervorgänge, verwendet jedoch keine Archivpakete. cpio liest eine Liste der zu kopierenden Dateinamen aus der Standardeingabe; das Zielverzeichnis wird als nicht optionales Befehlszeilenargument angegeben. |
cpio unterstützt die folgenden Archivformate: Binär, altes ASCII, neues ASCII, crc, HPUX-Binärdatei, HPUX altes ASCII, altes Tar und POSIX.1-Tar.
Einige Optionen von cpio können nur im entsprechenden Betriebsmodus verwendet werden. Das häufig verwendete Befehlsoptionsformat ist wie folgt:
[root@initroot ~]# cpio -ovcB > [file|device] #备份 [root@initroot ~]# cpio -ivcdu < [file|device] #还原 [root@initroot ~]# cpio -ivct < [file|device] #察看
Optionen und Parameter, die im Kopiermodus (Backup) verwendet werden:
- o: Geben Sie die Datenkopie in eine Datei oder ein Gerät aus
-B: Erlauben Sie die Erhöhung der Standardblöcke auf 5120 Byte, der Standardwert ist 512 Byte! Der Vorteil davon ist, dass die Speicherung großer Dateien beschleunigt werden kann (bitte). siehe i-Nodes-Konzept)
Optionen und Parameter, die im Einkopiermodus (Wiederherstellen) verwendet werden:
-i: Daten aus Dateien oder Geräten aus dem System kopieren
-d: Automatisch ein Verzeichnis erstellen! Die mit cpio gesicherten Daten befinden sich möglicherweise nicht im selben Verzeichnis, daher müssen wir cpio erlauben, während der Wiederherstellung ein neues Verzeichnis zu erstellen
-u: Ältere Dateien automatisch mit neueren überschreiben!
-t: Erfordert die Option -i, die verwendet werden kann, um den Inhalt von Dateien oder Geräten anzuzeigen, die mit cpio erstellt wurden
Allgemeine Optionen und Parameter :
-v: Ermöglicht die Anzeige des Dateinamens auf dem Bildschirm während des Speichervorgangs
-c: Ein neuerer tragbarer Formatspeicher
cpio liest Daten von der Standardeingabe und gibt die verarbeiteten Daten aus Daten in die Standardausgabe umwandeln, daher muss cpio mit Pipes und Umleitungssymbolen verwendet werden.
Suchen Sie alle Dateien im /boot-Verzeichnis und sichern Sie sie in der Archivdatei /tmp/boot.cpio:
[root@initroot ~]# cd / [root@initroot /]# find boot -print boot boot/grub boot/grub/gfxblacklist.txt boot/grub/unicode.pf2 boot/grub/locale ...省略...
Der Befehl „find“ kann alle Dateien im Boot-Verzeichnis finden, einschließlich Dateien und Verzeichnisse Hier ist ein relativer Pfad, kein absoluter Pfad!
[root@initroot /]# find boot | cpio -ocvB > /tmp/boot.cpio [root@initroot /]# ls -lh /tmp/boot.cpio -rw-r--r-- 1 peter peter 193M Feb 10 15:59 /tmp/boot.cpio [root@initroot ~]# file /tmp/boot.cpio /tmp/boot.cpio: ASCII cpio archive (pre-SVR4 or odc)
Verwenden Sie find boot, um den Dateinamen herauszufinden, übergeben Sie die Ausgabe über die Pipeline an cpio und geben Sie die Archivdaten über das Umleitungssymbol in die Datei /tmp/boot.cpio aus >! oben finden Der Parameter boot ist ein relativer Pfad, kein absoluter Pfad. Es werden keine speziellen Daten verarbeitet. Wenn hier also ein absoluter Pfad verwendet wird, ist die Ausgabe des Suchbefehls auch ein absoluter Pfad, und was cpio erhält, ist auch ein absoluter Pfad. Wenn die Datei dann aus der Archivdatei kopiert wird, ist sie ein absoluter Pfad. Die kopierte Datei wird auf jeden Fall überschrieben. Dies ist sehr gefährlich. Achten Sie daher darauf, relative Pfade zu verwenden, wenn Sie den Befehl „find“ mit cpio verwenden. Beachten Sie die Option -P des Befehls tar!!
Entpacken Sie nun die Archivpaketdatei /tmp/boot.cpio in das Verzeichnis /root/:
[root@initroot ~]# cd ~ [root@initroot ~]# cpio -idvc < /tmp/boot.cpio [root@initroot ~]# ls -al /root/boot
Sie können sehen, dass der Inhalt von /root/boot und /boot sind genau das Gleiche!
cpio kann die Systemdaten vollständig auf dem Bandlaufwerk sichern:
[root@initroot ~]# find / | cpio -ocvB > /dev/st0
Daten vom Bandlaufwerk wiederherstellen:
[root@initroot ~]# cpio -idvc < /dev/st0
cpio kann jede Datei sichern, einschließlich Gerätedateien unter /dev! Sehr wichtiger Befehl!
cpio Es muss mit anderen Programmen zusammenarbeiten, z. B. find, um Dateinamen zu erstellen, daher hat cpio eine sehr enge Beziehung zu Pipeline-Befehlen und der Datenflussumleitung
Tatsächlich /boot/initramfs-xxx! /boot/initrd im Verzeichnis /boot. Die Datei .img-xxx-generic ist auch eine cpio-Archivdatei.
Wir können die Datei in das Verzeichnis /tmp/initramfs entpacken, um zu sehen, welche Dateien sich in diesem Archivpaket befinden:
[root@initroot ~]# file initrd.img-4.15.0-65-generic initrd.img-4.15.0-65-generic: ASCII cpio archive (SVR4 with no CRC) [root@initroot ~]# mkdir /tmp/initramfs [root@initroot ~]# cd /tmp/initramfs [root@initroot initramfs]# cpio -idv < /boot/initrd.img-4.15.0-65-generic . kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/AuthenticAMD.bin 56 blocks
Beachten Sie, dass die Option -c hier entfernt wird. Wenn die Option -c hinzugefügt wird, wird cpio wie folgt angezeigt Tipp:
cpio: premature end of file
Entfernen Sie die Option -c, um die Archivdatei erfolgreich zu dekomprimieren!
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind die drei Betriebsmodi von Linux cpio?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!