Ich verwende im Allgemeinen 7zip, wenn ich unter Windows mehrere 7zip-Dateien entpacke. Ich bin auf mehrere Artikel gestoßen, in denen darauf hingewiesen wurde, dass ich mehrere 7zip-Dateien zu einem einzigen Zip-Archiv zusammenfassen muss, wenn ich sie unter Linux entpacken möchte.
- Ist das notwendig?
- Kann ich nicht einfach die erste der mehreren 7zip-Dateien angeben?
Der Grund für meine Frage ist, dass beim Ausführen des Befehls anscheinend 7zr e {name_of_first_archive}
nur das erste Archiv dekomprimiert wird.
Antwort1
Sie können geteilte 7z-Archive extrahieren/dekomprimieren, ohne dass Sie die Teile vor der Extraktion zusammenfügen müssen. Die einzige Voraussetzung ist, dass Ihre Archive inkrementelle Erweiterungen des Typs haben müssen..NNN(wobei N=[0..9]) beginnend mit.001. Dies liegt wahrscheinlich daran, dass beim Erstellen eines geteilten Archivs mit 7z jeder Teil des Archivs auf diese Weise benannt wird. Anschließend müssen Sie nur noch den Befehl für das erste Archiv ausführen:
[me home]$ ls
diveintopython3.pdf.7z.001 diveintopython3.pdf.7z.002 diveintopython3.pdf.7z.003
[me home]$ 7zr x diveintopython3.pdf.7z.001
7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Processing archive: diveintopython3.pdf.7z.001
Extracting diveintopython3.pdf
Everything is Ok
Size: 2598283 Compressed: 734003
Antwort2
Nun, anscheinend geht das nicht. Komisch, aber so ist es nun einmal. Dieses kleine Skript wird jedoch tun, was Sie wollen (vorausgesetzt, Ihre Archive haben die Erweiterung .7z, wenn nicht, ändern Sie sie in die Erweiterung, die sie haben):
for n in *7z; do 7zr x $n; done
Verwenden Sie das Flag „x“ anstelle des Flags „e“, da „e“ alle Dateien in das aktuelle Verzeichnis extrahiert, während „x“ die ursprünglichen Pfade beibehält.
Um Ihnen das Leben leichter zu machen, können Sie Ihrer Datei ~/.bashrc diese kleine Funktion hinzufügen:
function multi7z () {
for n in $@; do 7zr x $n; done
}
Anschließend können Sie wie erwartet mehrere Archive entpacken:
$ multi7z *7z
oder
$ multi7z a.7z b.7z n.7z
EDIT: Dies funktioniert, wenn Sie mehrere dekomprimieren,unabhängigArchive. Wenn SieeinsArchiv auf viele .7z-Dateien aufgeteilt, verwenden Sie stattdessen die Antwort von @don_crissti.