我正在寻找等效的PowerShell命令:
tar -zcvf tar-archive-name.tar.gz source-folder
是否存在从文件夹中创建zip文件以递归方式添加source-folder
的内容,这不需要像7-zip这样的第三方库?
答案 0 :(得分:6)
从Powershell 5开始,您可以使用内置的Compress-Archive
命令:
Compress-Archive -Path source-folder -DestinationPath archive-name.zip
如果您在版本5之前使用PowerShell,则没有没有像7-zip这样的第三方程序的单线程解决方案。但是,您可以利用通过COM Shell object公开的Windows资源管理器的内置压缩功能来构建您自己的PowerShell功能来执行此操作。 This page outlines the details关于如何做到这一点。
答案 1 :(得分:4)
实际上,有一个单行等效创建zip档案,甚至还有一个单行来创建完全匹配,即tar文件。您应该首先查找这样的库函数PowerShell Community Extensions,为PowerShell提供大量高质量的库扩展。遗憾的是,对于特定项目的网络搜索,例如您的zip创建功能,可能不会发现任何内容,因为网站或文档中没有任何内容包含cmdlet列表和提供的功能!要了解您必须安装库,请执行help about_pscx
。通过筛选,您将发现与您的问题相关的内容:
Write-Zip
Create ZIP format archive files from pipline or parameter input.
Write-GZip
Create GNU ZIP (GZIP) format files from pipeline or parameter input.
Write-Tar
Create Tape Archive (TAR) format files from pipeline or parameter input.
在这里,从他们的嵌入式示例中,您可以使用它们:
PS> dir c:\logs\ -rec -inc *.log | write-zip -level 9 -removeoriginal
PS> dir c:\logs\ -rec -inc *.log | write-tar -output logs.tar | write-gzip -level 9 | move-item c:\archived_logs\