本文目录导读:

- 方法一:使用 7-Zip(推荐,跨平台且效率最高)
- 方法二:使用 WinRAR(Windows 环境经典方案)
- 方法三:使用内置的
zip命令(Linux/Mac 原生) - 方法四:使用
tar+split(Linux/Mac 纯系统命令) - 解压分卷压缩包的方法
- 关键注意事项
- 总结:哪种最适合你的场景?
分卷压缩超大文件(例如超过 100GB 的单个文件),核心在于限制单个分卷的大小,并将文件切割成多个连续的压缩包(如 .zip.001, .zip.002 或 .rar.part1)。
以下是针对 Windows 和 Linux/Mac 主流方法的详细脚本和命令。
使用 7-Zip(推荐,跨平台且效率最高)
7-Zip 是处理大文件的首选工具,因为它支持 LZMA2 算法且能很好地利用多核 CPU,以下脚本使用 7z 命令行。
Windows(批处理 .bat 或 PowerShell)
假设你要压缩 大型视频文件.mp4,希望每个分卷不超过 2GB。
批处理脚本 (compress.bat):
@echo off REM 请将 7z.exe 的路径加入环境变量,或者使用完整路径 SET "FILE_PATH=C:\Users\你的用户名\Videos\大型视频文件.mp4" SET "OUTPUT_DIR=C:\Users\你的用户名\Videos\分卷压缩包" SET "VOLUME_SIZE=2000M" REM 创建输出文件夹(如果不存在) if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%" REM 执行分卷压缩 REM -v2000M 表示每个分卷 2000 MB(约 2GB) REM -mx=5 表示压缩率(0=仅存储,9=极致压缩),对于超大文件,建议用 1 或 0 来节省时间 7z a -t7z -mx=1 -v%VOLUME_SIZE% "%OUTPUT_DIR%\大型视频文件.7z" "%FILE_PATH%" echo 分卷压缩完成!文件位于 %OUTPUT_DIR% pause
参数解释:
-t7z:指定压缩格式为 7z(比 zip 体积小)。-mx=1:使用最快压缩模式(处理百 GB 级别速度优先)。-v2000M:分卷大小,支持M(兆)、G(吉)、K(千)。
Linux / macOS(Shell 脚本)
#!/bin/bash
# compress.sh
INPUT_FILE="/home/user/big_data.iso"
OUTPUT_DIR="/home/user/archives"
VOL_SIZE="2G" # 每个分卷 2GB
# 创建输出目录
mkdir -p "$OUTPUT_DIR"
# 执行 7z 分卷压缩
7z a -t7z -mx=1 -v${VOL_SIZE} "${OUTPUT_DIR}/big_data.7z" "${INPUT_FILE}"
echo "压缩完成,分卷位于:$OUTPUT_DIR"
使用方式:
chmod +x compress.sh ./compress.sh
使用 WinRAR(Windows 环境经典方案)
如果你的环境默认安装了 WinRAR,可以使用 CLI 的 rar.exe。
批处理脚本 (compress_rar.bat):
@echo off set "RAR_PATH=C:\Program Files\WinRAR\Rar.exe" set "INPUT=C:\Data\large_database.dump" set "OUTPUT=C:\Data\RarParts\large_db.rar" set "PART_SIZE=1000M" REM 每个分卷 1GB,支持 M、G、K "%RAR_PATH%" a -v%PART_SIZE% -m0 -ep1 "%OUTPUT%" "%INPUT%" REM -m0 表示仅存储(不压缩,适合已经压缩过的文件或需要极快速度);改为 -m3 为标准压缩 pause
- 注意:
-v1000M表示每个卷 1000M,WinRAR 会自动生成large_db.part1.rar,large_db.part2.rar等。 -ep1:从路径中排除基名(确保压缩包内不包含完整路径)。
使用内置的 zip 命令(Linux/Mac 原生)
如果你不想安装 7-Zip,可以使用 zip 命令的 -s 选项。但是,zip 对于单文件超大(> 4GB)且需要高效压缩的情况不太理想,主要适合快速打包。
Shell 脚本:
#!/bin/bash
INPUT="/data/video.mp4"
OUTPUT_PREFIX="/data/archive.zip"
SPLIT_SIZE="2G" # 或写成 2000m
# -s 指定分卷大小,-0 表示仅存储(最快)
zip -s ${SPLIT_SIZE} -0 ${OUTPUT_PREFIX} ${INPUT}
# 会生成 archive.z01, archive.z02, ..., archive.zip
注意:zip 分卷在 unzip 解压时要求所有分卷在同一目录下。
使用 tar + split(Linux/Mac 纯系统命令)
这种方法先打包再切割,完全不需要额外工具,适合远距离传输前做简单分块。
脚本示例:
#!/bin/bash
INPUT_FILE="megafile.bin"
OUTPUT_DIR="/backup"
SPLIT_SIZE="1G" # 每个文件 1GB
# 1. 先用 tar 打包(也可以不压缩,如果不想压缩则去掉 -z)
tar -czf - "${INPUT_FILE}" | split -b ${SPLIT_SIZE} - "${OUTPUT_DIR}/megafile.tar.gz.part-"
# 生成的文件:megafile.tar.gz.part-aa, megafile.tar.gz.part-ab, ...
合并与解压命令:
# 合并
cat ${OUTPUT_DIR}/megafile.tar.gz.part-* > megafile.tar.gz
# 解压
tar -xzf megafile.tar.gz
优点: 纯系统自带,无需安装。
缺点: 分卷不包含索引信息,合并时顺序必须正确(按文件名排序 part-aa, ab, ac)。
解压分卷压缩包的方法
无论哪种工具,解压分卷时必须把所有分卷文件放在同一个目录,然后执行:
- 7z:
7z x 大型视频文件.7z.001 -o目标文件夹 - WinRAR:双击
part1.rar,或在终端unrar x 文件.part1.rar - ZIP:
unzip 文件.zip(自动识别分卷,或者用7z x) - Tar + split:先
cat合并再解压(见上文)
关键注意事项
- 压缩率与时间取舍:大文件(如视频、数据库)往往已经是压缩过的,建议使用 “仅存储/无压缩” 模式(
-mx=0或-m0),节省时间且体积几乎不变。 - 分卷大小选择:常见有
2000M(2G)、1000M(1G)或4096M(4G,适合 FAT32 文件系统)。 - 文件格式兼容性:如果对方是 Windows 用户,推荐使用 RAR(WinRAR 通用)或 7Z,如果跨平台,7Z 最稳妥。
- 命名完整性:传输时不要改名或漏掉任何一个分卷文件(如
.7z.001、.z01),否则解压会失败。
哪种最适合你的场景?
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 你的机器上装有 7-Zip | 7-Zip 脚本 | 速度快、压缩灵活、跨平台 |
| 需要发给普通 Windows 用户 | WinRAR 脚本 | .rar 格式在中国用户中最常见 |
| 服务器只有 Linux 核心命令 | Tar + Split | 无需安装任何东西,但合并较麻烦 |
| 超大型文件(数 TB) | 7-Zip + 仅存储模式 | 避免内存溢出,分卷稳定 |
复制上面的脚本,修改文件路径和分卷大小,即可一键分卷压缩任意超大文件。