Betrachtet man den speziellen Fall von ZIP- Dateien mit mehreren Segmenten ,
Dies ist eine ergänzende Antwort zu der Hauptantwort .
Wie bereits in der Hauptantwort angegeben, unterstützen nur einige Archivierungswerkzeuge das Teilen, und die Haupt-GUI scheint nicht in der Lage zu sein, Archive mit mehreren Segmenten im zipFormat zu erstellen . Alternative Formate können jedoch verwendet werden, nämlich rarund 7z.
Außerdem können nur einige Tools aus Multisegment-Zip-Dateien extrahieren, wie die hier diskutierten: Siehe dazu den Endvermerk zu dieser Antwort.
Da sich die Frage speziell mit dem Problem der Archivierung aus dem Kontextmenü des Dateimanagers befasst , habe ich mich mit einigen Befehlen befasst, die den angegebenen Zweck auch für zipDateien erfüllen können: Wenn solche Befehle erfolgreich sind, können sie problemlos zum Dateimanager als hinzugefügt werden Kontextmenüeinträge.
In Anbetracht des zipTools können Archive mit mehreren Segmenten direkt mit einem Befehl wie zip my_archive.zip -r <file> -s 20971519(weitere Details unter dieser Frage ) erstellt werden. Diese sind jedoch überhaupt nicht nützlich, da sie nicht zum Extrahieren bereit sind (Sie benötigen einen zusätzlichen zip -s 0Befehl zum Erstellen eines großen 1- Datei extrahierbares Archiv (wie hier beschrieben ) und diese Einschränkung kann nicht umgangen werden. Das Senden eines solchen Archivs mit mehreren Segmenten an jemanden, der dies nicht weiß, ist sinnlos.
Wie bereits in der Hauptantwort vorgeschlagen, besteht eine andere Möglichkeit darin, die Datei zu komprimieren und dann das Ein-Datei-Archiv mitsplit (oder der hjsplitGUI) zu teilen . (Ich habe die GUI getestet und fand sie extrem langsam, während die GUI für das Kontextmenü nicht benötigt wird.)
Die Idee ist, dem Kontextmenü des Dateimanagers einen Eintrag hinzuzufügen, der mit nur einem Klick erstellt werden kann
- ausgewählte Dateien als einzelne
zipDatei komprimieren ,
- Teilen Sie die ZIP-Datei in Teile mit der angegebenen maximalen Größe auf
- Entfernen Sie es, um nur das Archiv mit mehreren Dateien zu behalten.
Also habe ich mit Thunar und einer benutzerdefinierten Aktion mit diesen drei Befehlen getestet, die verbunden sind durch &&:
zip -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
(Dies gilt für eine oder mehrere ausgewählte Dateien, jedoch nicht für Verzeichnisse. Für die Anwendung auf Verzeichnisse ist die folgende zip -rOption erforderlich:
zip -r -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
)
-jsteht für eine Option zipzum "Junken des Pfads": Anders als bei einem Terminalbefehl, der den vollständigen Pfad der zu archivierenden Datei (en) enthält, würde ein Kontextmenübefehl, der %Ffür ausgewählte Dateien verwendet wird, dem Archiv einen Ordner-In hinzufügen -Ordnerstruktur, sofern nicht -jverwendet wird; (Quelle: zip erstellen - Verzeichnisstruktur ignorieren );
my_archive.zipist der benutzerdefinierte Name des noch nicht aufgeteilten Archivs; Der splitBefehl wird darauf angewendet und der erstere wird mit entferntrm
%Fkann in einer Thunar benutzerdefinierte Aktion , um verwendet werden , um mehrere Dateien zu komprimieren , wie zip; alternativ %fist zur Auswahl nur einer Datei zu verwenden;
-b 20msteht für die Größe der einzelnen Archivteile, die von splitwie hier angegeben erstellt wurden ;
split.zipist eine Spezifikation, die nicht benötigt wird; es ist der benutzerdefinierte Name des endgültigen Archivs mit mehreren Dateien, es würde so etwas wie geben split.zipaa, split.zipab, split.zipac..., und ohne ihn wird die Ausgabe benannt, xgefolgt von den aaFragment-Suffixen:, xaa, xab, xac...etc; Es gibt eine splitOption -d, numerische Suffixe anstelle von alphabetischen zu verwenden. Dies führt jedoch zu einem Fehler (da der Extraktor anscheinend ein standardmäßiges ZIP-Multisegment-Archiv erwartet, wenn ein numerisches Suffix angezeigt wird - wie in einem privaten Chat von Stephen Kitt vorgeschlagen ;
rmAngewendet auf die my_archive.zipDatei hinterlässt uns nur das gewünschte Multisegment-Archiv.
Hinweis:
Damit das resultierende Multi-Zip-Archiv extrahiert werden kann, wird ein Tool benötigt, das aasegmentetd-Archive unterstützt , wie file-rollerunter Linux und 7-Zip unter Windows.