Windows系统如何解压.tar.gz.aa、.tar.gz.ab格式的多卷拆分压缩包
报错原因说明
- 内存溢出错误:PowerShell 中
cat是Get-Content的别名,默认以文本格式读取文件且会将全量内容加载到内存,单卷10GB的场景下会直接超出内存上限触发报错 - zcat不存在错误:Windows 原生PowerShell没有内置
zcat命令,且tar命令的z参数已经自带gzip解压能力,无需额外调用zcat
Windows 系统可行解决方案
方法1:原生PowerShell命令(无需额外安装软件)
使用字节流模式分块读取文件,避免全量加载到内存:
Get-Content -Path .\你的压缩包名.tar.gz.a* -AsByteStream -ReadCount 1MB | tar -xzvf -
如果是PowerShell 5.1及更早版本,将-AsByteStream替换为-Encoding Byte即可
方法2:使用7-Zip(更适合普通用户)
7-Zip原生支持识别分卷压缩的tar.gz格式,两种操作方式可选:
- 图形化操作:直接右键点击
.tar.gz.aa格式的第一个分卷,选择7-Zip的解压选项即可,软件会自动识别所有同序列分卷完成解压 - 命令行操作:执行以下命令即可
7z x .\你的压缩包名.tar.gz.aa
Linux 系统可行解决方案
Linux下的cat命令默认是流处理模式,不会出现内存溢出问题,直接执行以下命令即可,无需额外合并分卷:
cat 你的压缩包名.tar.gz.a* | tar -xzvf -
如果需要先合并为完整压缩包再解压,可以执行:
cat 你的压缩包名.tar.gz.a* > 你的压缩包名.tar.gz && tar -xzvf 你的压缩包名.tar.gz
注意事项
- 所有分卷文件需要放在同一个目录下,文件名需保持原本的序号排序规则,不能有缺失的分卷,否则会解压失败
- 解压前请确保目标磁盘剩余空间足够容纳解压后的完整文件
内容的提问来源于stack exchange,提问作者tarballgeez
相关产品推荐
相关产品推荐

