基本上我正在 Cygwin 中编写一个 shell 脚本,它需要我压缩几个文件(它必须是 zip 不能是 gzip)。我正在使用的服务器没有安装 zip 二进制文件,我无法安装它,因为它需要 RFC(更改请求)才能完成。
目前我可以创建 zip 的唯一方法是在 Windows 环境中选择我想要的文件,右键单击 > 发送到压缩的 zip 文件夹。但这违背了使用 shell 脚本来完成这项工作的目的。
有没有其他方法可以通过 Unix shell 或 Windows CMD 来完成此操作?
答案1
当然可以,使用Python 压缩文件模块。 Python 的安装非常普遍,因此您可能不需要请求安装它。 zipfile 模块附带了 Python 的标准库,因此如果 Python 本身安装的话,基本上可以保证安装它。
您可以通过编写简短的 Python 脚本或使用其自己的命令行界面(示例位于文档页面末尾)来使用它。
答案2
当然,只需使用 powershell 即可。下面的示例创建 foo.zip,其中包含 foo.txt。
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/Compress-Archive