zip バイナリを使用せずに zip ファイルを作成することは可能ですか?

zip バイナリを使用せずに zip ファイルを作成することは可能ですか?

基本的に、私は Cygwin でシェル スクリプトを作成していますが、このスクリプトでは、いくつかのファイルを zip 圧縮する必要があります (zip 圧縮でなければならず、gzip 圧縮はできません)。作業中のサーバーには zip バイナリがインストールされておらず、RFC (変更要求) を実行する必要があるためインストールできません。

現時点で zip を作成できる唯一の方法は、Windows 環境で必要なファイルを選択し、右クリックして [圧縮された zip フォルダーに送信] を選択することです。しかし、これではシェル スクリプトを使用して作業を行う目的が達成されません。

Unix シェルまたは Windows CMD を介してこれを行う他の方法はありますか?

答え1

はい、Python zipファイルモジュール。Python はどこにでもインストールされているので、インストールを要求する必要はおそらくないでしょう。zipfile モジュールは Python の標準ライブラリに付属しているので、Python 自体がインストールされていれば、基本的にインストールされることが保証されます。

短い Python スクリプトを記述するか、独自のコマンド ライン インターフェイス (ドキュメント ページの最後に例があります) を使用して使用できます。

答え2

はい、PowerShell を使用してください。以下の例では、foo.txt を含む foo.zip を作成します。

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>

詳細はhttps://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.archive/圧縮アーカイブ

関連情報