Ist es in Linux erforderlich, mehrere 7zip-Dateien zu verketten, bevor sie entpackt werden können?

Ist es in Linux erforderlich, mehrere 7zip-Dateien zu verketten, bevor sie entpackt werden können?

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.

  1. Ist das notwendig?
  2. 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.

verwandte Informationen