Basicamente, estou trabalhando em um script de shell no Cygwin que exige que eu compacte alguns arquivos (deve ser um zip, não pode ser gzip). O servidor em que estou trabalhando não possui o binário zip instalado e não consigo instalá-lo pois seria necessário que fosse feito um RFC (request for change).
A única maneira de criar um zip por enquanto é selecionar os arquivos que desejo no ambiente Windows, clicar com o botão direito > enviar para a pasta zip compactada. Mas isso vai contra o propósito de ter um script de shell para fazer o trabalho.
Existe alguma outra maneira de fazer isso através do shell Unix ou do Windows CMD?
Responder1
Claro, use oArquivo zip Pythonmódulo. O Python é instalado de forma bastante onipresente, então você provavelmente não precisará solicitar sua instalação. O módulo zipfile vem com a biblioteca padrão do Python, então é essencialmente garantido que ele será instalado se o próprio Python estiver.
Você pode usá-lo escrevendo um script Python curto ou usando sua própria interface de linha de comando (exemplos no final da página de documentação).
Responder2
Claro, basta usar o PowerShell. O exemplo abaixo cria foo.zip, contendo 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>
Mais detalhes emhttps://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.archive/Compress-Archive