基本上我正在 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