Aktualisieren Sie alle Dateien im Archiv mit 7zip

1646
Maxim V. Pavlov

Ich verwende eine Befehlszeilenversion von 7zip (7za.exe).

Ich habe die folgende Datei in dem Ordner:

7za.exe 1.txt  test.zip 

test.zipenthält mehrere Vorkommen 1.txtin der gezippten Ordnerstruktur.

Ich brauche 7zip, um alle 1.txt in test.zip mit der 1.txt-Datei zu aktualisieren (zu überschreiben), die sich entlang der 7za.exe befindet

Könnte das getan werden? Was ist der Befehl? Ich habe es ausprobiert 7za.exe u test.zip 1.txt, aber dies nur aktualisierte 1.txt, die im Stammordner im Archiv liegt, aber nicht die inneren.

0

2 Antworten auf die Frage

2
Marco

Sie können die Datei über den Schalter angeben -siund aus stdin lesen. Mit einem Skript können Sie alle Dateien aktualisieren. Bei mir funktionierte es jedoch nur, wenn der Archivtyp 7z ist. Beispiel:

$ 7z l test.7z  7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 (...) Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2016-04-20 17:20:08 ....A 2 8 1.txt 2016-04-20 17:20:08 ....A 2 dir1/1.txt 2016-04-20 17:20:08 ....A 2 dir2/1.txt 2016-04-20 17:20:16 D.... 0 0 dir2 2016-04-20 17:20:14 D.... 0 0 dir1 ------------------- ----- ------------ ------------ ------------------------ 6 8 3 files, 2 folders  $ 7z u test.7z -sidir1/1.txt < 1.txt  $ 7z l test.7z  (...) Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2016-04-20 17:20:08 ....A 2 9 1.txt 2016-04-20 17:20:08 ....A 2 dir2/1.txt 2016-04-20 17:22:08 ..... 4 9 dir1/1.txt 2016-04-20 17:20:16 D.... 0 0 dir2 2016-04-20 17:20:14 D.... 0 0 dir1 ------------------- ----- ------------ ------------ ------------------------ 8 18 3 files, 2 folders 

In der Dokumentation zu 7-Zip 9.20 und 15.14:

Hinweis: Die aktuelle Version von 7-Zip unterstützt das Lesen von Archiven aus stdin nur für die Archive xz, lzma, tar, gzip und bzip2.

LZMA ist die Standardkomprimierungsmethode für den 7z-Archivtyp. Ich habe ein -mm=lzmaZip-Archiv versucht, aber es hat nicht funktioniert.

0
LPChip

Die Option 7zip -u aktualisiert das Archiv, berücksichtigt jedoch die Ordnerstruktur. Um alle Textdateien zu aktualisieren, müssen Sie die Ordnerstruktur neu erstellen, die Textdateien an den entsprechenden Speicherorten ablegen und anschließend den gesamten Ordner mit der Aktualisierungsoption komprimieren.

Wenn Sie die 1.txt-Datei häufig aktualisieren und alle Dateien problemlos aktualisieren möchten, können Sie mklinkJunctions zu dieser 1.txt-Datei erstellen, sodass Sie die Datei nur einmal aktualisieren müssen.

Wenn ich die genauen Positionen aller 1.txt in der zip-Struktur kenne, kann ich dann einen Befehl zum Aktualisieren eines bestimmten Befehls mit "u" aufrufen? Maxim V. Pavlov vor 8 Jahren 1