Ist es möglich, eine ZIP-Datei zu erstellen, ohne die ZIP-Binärdatei zu verwenden?

Ist es möglich, eine ZIP-Datei zu erstellen, ohne die ZIP-Binärdatei zu verwenden?

Im Grunde arbeite ich an einem Shell-Skript in Cygwin, für das ich ein paar Dateien zippen muss (es muss ein ZIP-Dateiformat sein, es kann kein GZIP-Dateiformat sein). Auf dem Server, an dem ich arbeite, ist die ZIP-Binärdatei nicht installiert und ich kann sie nicht installieren, da dafür ein RFC (Request for Change) erforderlich wäre.

Die einzige Möglichkeit, eine Zip-Datei zu erstellen, besteht derzeit darin, die gewünschten Dateien in der Windows-Umgebung auszuwählen und mit der rechten Maustaste zu klicken > an komprimierten Zip-Ordner senden. Dies macht jedoch ein Shell-Skript für diese Aufgabe überflüssig.

Gibt es IRGENDEINE andere Möglichkeit, dies entweder über die Unix-Shell oder die Windows-CMD zu tun?

Antwort1

Sicher, verwenden Sie diePython-Zip-DateiModul. Python ist ziemlich überall installiert, Sie müssen also wahrscheinlich nicht extra darum bitten, es zu installieren. Das Zipfile-Modul wird mit der Standardbibliothek von Python geliefert, daher ist es im Grunde garantiert, dass es installiert wird, wenn Python selbst installiert wird.

Sie können es entweder durch Schreiben eines kurzen Python-Skripts oder durch Verwendung der eigenen Befehlszeilenschnittstelle verwenden (Beispiele am Ende der Dokumentationsseite).

Antwort2

Klar, verwenden Sie einfach Powershell. Das folgende Beispiel erstellt foo.zip, das foo.txt enthält.

PS C:\Users\steve_000> Compress-Archive -U -LiteralPath foo.txt -DestinationPath foo.zip
PS C:\Users\steve_000> dir foo.zip


    Directory: C:\Users\steve_000


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         15/04/17  10:52 PM           1119 foo.zip


PS C:\Users\steve_000>

Weitere Details unterhttps://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.archive/Compress-Archive

verwandte Informationen