Gegeben eine .zip mit der folgenden Beispielstruktur:
/folder1/
file1.1.txt
file1.2.txt
/folder2/
file2.1.txt
file2.2.txt
file1.txt
file2.txt
Ich muss in der Lage sein, diese interne Dateistruktur mit dem 7zip-Kommandozeilen-Tool wie folgt zu ändern:
1. Ich muss alle vorhandenen Dateien in einen neuen Ordner innerhalb des Archivs verschieben (z. B. die gespeicherten Pfade mit "/ myfolder" voranstellen)
- Ich muss einen weiteren Ordner mit anderen Dateien hinzufügen (außerhalb dieser Frage gelöst)
Ohne Entpacken hätte ich daher gerne die folgende Struktur:
/myfolder/
myfolderfile1.txt
myfolderfile2.txt
/data/
/folder1/
file1.1.txt
file1.2.txt
/folder2/
file2.1.txt
file2.2.txt
file1.txt
file2.txt
Ich weiß, wie man Punkt 2 löst, aber Punkt 1 (Änderung der internen Struktur) bereitet mir Probleme.
Der Grund für diese Anforderung ist, dass ich mit SEHR großen und komplexen Archiven arbeite, mit dem einzigen Zweck, die Dateien neu anzuordnen und einige weitere auf die gleiche Weise hinzuzufügen. Es scheint kontraproduktiv, für jede Datei (die bis zu einer Stunde dauern kann) zu entpacken, wenn ich dies einfacher machen könnte.
Auch wenn es ein anderes Tool gibt, das diese Aufgabe besser ausführen kann (d. H. NICHT 7zip, sondern ein anderes) kostenloses Kommandozeilen-Tool ), Ich bin offen für Vorschläge.
Dankesehr!
P.S. Mir ist bekannt, dass beim Erhöhen des Verzeichnispfads in der Nähe von 248 Zeichen möglicherweise ein Problem mit der Pfadlänge auftritt. Dies ist jedoch akzeptabel.
quelle
Antworten:
Du kannst den ... benutzen
7z rn
Befehl zum Verschieben von Dateien und Ordnern in Archiven. Leider kann das Stammverzeichnis nicht verschoben werden. Sie können jedoch ein Skript verwenden, um die Ausgabe von zu analysieren7z l
und TU es.Hier ist ein kurzes Beispiel in Python: (
7z
muss in PATH vorhanden sein)quelle