把一个过大的文件夹分成若干个 ZIP 分卷
文章目录
- 1. 压缩ZIP文件
- 2. 把一个过大的文件夹分成若干个 ZIP 分卷
- 3. 解压缩
1. 压缩ZIP文件
在大多数 Linux 发行版上,你可以按以下步骤将整个文件夹压缩为 ZIP 文件:
-
安装 zip 工具(如未安装)
# Debian/Ubuntu sudo apt-get update sudo apt-get install zip# CentOS/RHEL sudo yum install zip
-
递归压缩文件夹
zip -r archive.zip /path/to/folder/
-r
:递归,将文件夹及其所有子文件一并打包。archive.zip
:输出的压缩包名称。/path/to/folder/
:要压缩的目标文件夹。
-
示例:给当前目录下的
my_project
文件夹打包zip -r my_project.zip my_project/
-
常用扩展选项
- 排除特定文件
zip -r project.zip project/ -x "*.git*" "*.DS_Store"
- 设置密码
zip -r -e secure.zip sensitive_folder/ # 系统会提示输入并确认压缩包密码
- 查看压缩进度
zip -r -v archive.zip folder/
-v
会打印详细的处理信息。
- 排除特定文件
完成后,你就会在当前目录下看到生成的 archive.zip
,可直接通过 unzip archive.zip
解压。
你可以用下面两种方法把一个过大的文件夹分成若干个 ZIP 分卷(split archive):
2. 把一个过大的文件夹分成若干个 ZIP 分卷
- 方法一:zip 原生分卷(zip ≥3.0)
现代 zip
(3.0 及以上)自带了分卷功能,直接用 -s
指定每个分卷最大尺寸:
zip -r -s 100m myarchive.zip /path/to/folder/
-r
:递归压缩目录-s 100m
:将输出分成每卷 100 MiB(你也可写100m
、1g
等)myarchive.zip
:分卷的基名,最终会生成myarchive.z01
、myarchive.z02
…- 以及一个尾文件
myarchive.zip
(包含目录信息)
解压时,只要所有分卷都在同一目录,运行:
unzip myarchive.zip
unzip
会自动读取并合并所有 .z??
卷。
- 方法二:先打包再用
split
拆分(兼容旧版 zip)
如果你的系统 zip
太旧不支持 -s
,可以先把整个目录流式压成一个 ZIP,然后用 split
拆成固定大小的块:
-
打包到 stdout:
zip -r - /path/to/folder/ > full.zip
-
按大小拆分(比如每卷 200 MiB):
split -b 200m full.zip "full.zip.part-"
这样会生成:
full.zip.part-aa full.zip.part-ab full.zip.part-ac …
-
还原 ZIP 并解压:
cat full.zip.part-* > full.zip unzip full.zip
小贴士
- 分卷名里不要带特殊字符,只用字母数字和短横线。
- 确保所有分卷都在同一目录里再解压,否则
unzip
/cat
会找不到。 - 如果你要发给别人,切忌漏传任意一卷,否则无法完整恢复。
3. 解压缩
Windows 自带的资源管理器和压缩工具无法直接识别 .z01/.z02/.../.zip
这种分卷ZIP;要在 Windows 下解压,常用做法有两种:
-
使用支持分卷 ZIP 的第三方工具
- 7‑Zip(免费开源),右键点击主
.zip
文件(例如myarchive.zip
),选择“7‑Zip → 解压到当前文件夹”,它会自动读取同目录下的所有.z01/.z02/...
卷并合并解压。 - WinZip 专业版等也支持多卷 ZIP。
- 7‑Zip(免费开源),右键点击主
-
先在 Windows 上合并再解压
如果你只想用自带命令,也可以先把分卷合并成一个完整 ZIP:copy /b myarchive.z01 + myarchive.z02 + myarchive.zip full.zip
然后双击或右键“解压全部”即可。
总结:
- 最简便:安装 7‑Zip,直接右键解压主
.zip
。 - 不安装额外软件:用
copy /b
合并为单文件再解压。