Ich muss allen Besuchern meiner Windows-Benutzer eine Zip-Datei zur Verfügung stellen, daher habe ich naiv eine Zip-Datei mit dem Unix-Befehl zip erstellt (nennen wir es madeinlinux.zip).
Es wird erfolgreich mit WinRar oder Winzip geöffnet, aber diejenigen meiner Benutzer, die die standardmäßige Windows-ZIP-Dateiverwaltung verwenden, versagen beim Entpacken. (Windows XP)
Ich habe dieselben Daten mit dem in Windows integrierten Zip-Mechanismus komprimiert und aus Linux-Sicht kann ich keinen Unterschied im Dateityp feststellen:
$ file madeinlinux.zip : Zip archive data, at least v2.0 to extract
$ file madeinwindows.zip : Zip archive data, at least v2.0 to extract
Sie müssen spezifisch für eine Windows-kompatible ZIP-Datei sein.
Weiß jemand was?
Antworten:
Versuche es mit:
-9
Gibt die langsamste Komprimierungsgeschwindigkeit an (optimale Komprimierung, ignoriert die Suffix-Liste)-y
Speichern Sie symbolische Links als solche im ZIP-Archiv, anstatt die Datei, auf die der Link verweist, zu komprimieren und zu speichern-r
Durchlaufen Sie die Verzeichnisstruktur rekursiv-q
Ruhemodusquelle
-r
) und-r
ermöglicht es ihnen, den gesamten7zip ist ein Open Source-Komprimierungsprogramm, das unter Linux, FreeBSD, Mac OS X, BeOS, DOS, Amiga und Windows funktioniert.
Ich würde es sehr empfehlen, basierend auf der Windows-Version.
Es unterstützt
quelle
Das einzige, was relevant aussieht, ist das
Aber lies "man zip" auf deinem System, bevor du irgendwohin gehst ...
quelle
zip -Z
Legt die Komprimierungsoption fest.-Z store
ist die trivialste, da sie überhaupt nicht komprimiert wird. Dies ist nützlich, wenn Siezip
als Alternative fürtar
oder bei der Fehlerbehebung verwenden. In diesem Fall sollten Sie versuchen, festzustellen, ob ein nicht komprimiertes Archiv unter Windows verwendet werden kann. Wenn das ist verwendbar, wissen Sie , dass Sie eine Nicht-Standard - Komprimierungsoption wählen müssen.quelle
Zusätzlich zu den Vorschlägen anderer ist es wichtig, auf Ihre Datei- und Verzeichnisnamen zu achten, da Windows den Pfad und die Namen von Linux-Dateien nicht unbedingt mag. Es entgeht ihnen manchmal auch anders beim Zippen. Beispiele sind zahlreiche, aber vor allem Punktdateien (. Und ..), Dateien mit nur Groß- und Kleinschreibung (name.txt und NAME.txt), absolute Dateipfade (/tmp/file.txt) . Einige andere Zeichen, die in Dateinamen unter Windows zulässig sind, können Probleme verursachen, wenn Windows Explorer zum Öffnen von Dateien verwendet wird. In meinem Fall war ':' der Deal Breaker, aber ich habe viel Arbeit investiert, um das herauszufinden.
Bevor Sie mit der Verwendung vieler Parameter fortfahren, sollten Sie einen einfachen Vorgang ausführen:
Suchen Sie den Ordner oder die Datei, die Sie komprimieren möchten.
Führen Sie Folgendes aus : zip -9 -r -k zip-modified-names.zip / path / to / your / folder
Wenn dies funktioniert, ist es möglicherweise besser, die mit der Option -k entfernten Zeichen aus den Datei- / Verzeichnisnamen zu entfernen. Versuchen Sie, normal zu komprimieren. Beachten Sie, dass einige Parameter wie -k Nebenwirkungen haben. In diesem Fall widerspricht -k der Option -q (für sym-Links).
Auch die Option -k kann Ihre Dateinamen unleserlich machen. In meinem Fall wurden meine Dateien basierend auf der Erstellungszeit benannt (z. B. 10: 55: 39.pdf), um das einfache Auffinden des erforderlichen Datensatzes aus Archiven zu erleichtern. Die Option -k hat sie jedoch in 105539.pdf geändert, was für Benutzer nicht leicht lesbar ist. Ich habe daher den Namen in 10_55_39.pdf geändert, was unter Windows ohne die Option -k geöffnet wird, aber immer noch lesbar ist.
quelle
Hatte kürzlich ein ähnliches Problem mit Dateien, die mit einem Perl-Skript erstellt wurden. Es wurde festgestellt, dass natives Windows Zip (nur Windows 7 getestet) Pfade mit einem führenden Schrägstrich falsch verarbeitet und eine leere Zip-Datei anzeigt. Die Lösung bestand darin, den führenden Schrägstrich vor dem Hinzufügen von Dateien zu entfernen. Möglicherweise speichern einige Versionen des Linux-Befehls zip Dateipfade mit führenden Schrägstrichen.
quelle
Hier ist ein Python-Skript, mit dem ich einige Dateien komprimiere. Es wurde unter Ubuntu und Vista getestet. Mit dem Vista-Reißverschluss wird ein unter Ubuntu generierter Reißverschluss geöffnet.
Ich denke, dass ich in der Vergangenheit ein ähnliches Problem hatte und es lag daran, dass das zip-Format nicht ZIP_DEFLATED war. Ich bin mir nicht sicher. Ich werde das überprüfen.
Ich hoffe, es hilft
quelle
Wahrscheinlich liegt ein Problem bei der Dateiübertragung von Linux nach Windows vor. Wenn Sie FTP verwenden, versuchen Sie, eine Binärübertragung festzulegen (Befehl bin in Windows, bevor Sie Ihre Dateien von Linux nach Windows übertragen).
quelle