You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10中PowerShell Tar命令压缩级别设置问题求助

解决PowerShell中tar命令未压缩及设置压缩级别的问题

问题分析

你的命令已经实现了正确的归档目录结构,但未启用压缩,原因是**tar命令未指定压缩参数**:虽然归档后缀用了.tgz(gzip压缩的tar归档格式),但默认情况下tar rf仅执行追加归档操作,不会自动启用压缩。

修正后的压缩命令

要启用gzip压缩并保持正确的目录结构,只需给tar添加z参数(启用gzip压缩),同时优化命令逻辑减少冗余操作:

powershell -Command "$rootDir = 'C:\Projects\MySoftware'; Get-ChildItem -Path $rootDir\templates -Recurse -Include *.mdb | Sort-Object LastWriteTime | ForEach-Object { $relativePath = $_.FullName.Replace("$rootDir\", ''); tar rzf BASetupUpdate.tgz -C $rootDir $relativePath }"

关键修改说明

  • 添加z参数:tar rzf中的z明确启用gzip压缩,让.tgz文件真正具备压缩特性
  • 使用-C指定工作目录:替代重复的cd操作,直接让tar以C:\Projects\MySoftware为根目录处理相对路径,保证归档结构正确
  • 简化路径处理:通过变量统一管理根目录,避免硬编码重复路径

设置压缩级别

gzip支持1-9级压缩(1=最快/最低压缩率,9=最慢/最高压缩率,默认级别为6),可通过--options gzip:level=N参数自定义:
比如设置最高压缩级别9:

powershell -Command "$rootDir = 'C:\Projects\MySoftware'; Get-ChildItem -Path $rootDir\templates -Recurse -Include *.mdb | Sort-Object LastWriteTime | ForEach-Object { $relativePath = $_.FullName.Replace("$rootDir\", ''); tar rzf BASetupUpdate.tgz -C $rootDir --options gzip:level=9 $relativePath }"

内容的提问来源于stack exchange,提问作者user20182161

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:05:47