首页/系统/Linux 运维命令速查/zip 压缩(跨平台 .zip)
文件与目录76 条

zip 压缩(跨平台 .zip)

生成 Windows/Linux 通吃的 .zip 包;交付客户、上架与跨平台分享时首选,注意传统加密很弱。

Linux 运维命令速查系统更新于 2026-10-13

zip 是什么

zip 生成 .zip 压缩包,是跨平台交付最省心的格式:Windows 资源管理器原生支持解压,收件人不需要装任何工具。与 tar.gz 相比,它的取舍很明确:元数据弱,Unix 权限、属主只能部分保留;文件名编码由打包方决定,Windows 用 GBK 打包的中文名在 Linux 上容易乱码;传统加密方式强度很低。所以 zip 适合把文件交给使用 Windows 的客户,服务器内部部署与需要保留权限的归档仍以 tar.gz 为主。

基本信息

适用平台Linux/macOS 用 Info-ZIP 的 zip;Windows 用资源管理器或 7-Zip
命令语法zip [选项] 包名.zip 文件或目录...
常用选项-r 递归目录 -x 排除模式 -q 静默 -9 最高压缩 -j 不保留路径 -s 分卷 -e 传统加密(强度低)
所属Info-ZIP
权限说明对输出目录需要写权限,读源文件需要读权限

典型使用场景

  • 交付客户:对方使用 Windows,zip 是唯一不需要额外软件的选择
  • 提交审核:部分平台与应用商店只接受 zip 格式的打包产物
  • 文档导出:把一批报表、图片打成压缩包分发
  • 大文件分发:用分卷把超过单文件上限的包拆开传输
  • 源码快照:打包一份代码目录方便归档或转移

常用示例

常用示例
zip -r site-2026-10.zip site              # 递归打包目录
zip -r app.zip app -x '*.log' -x '*/cache/*'   # 排除日志与缓存
zip -q delivery.zip *.pdf                 # 静默打包
zip -9 -r archive.zip data                # 最高压缩比
zip -r -s 100m big.zip bigdir             # 分卷,每卷 100MB
zip -j flat.zip a/1.txt b/2.txt           # 不保留目录层级
7z a -p -mhe=on secure.7z secret/         # 敏感交付改用 7z 的 AES-256

zip 与 tar.gz 取舍

维度ziptar.gz
跨平台Windows 原生支持解压Windows 需额外软件
权限保留只部分保留 Unix 属性完整保留权限、属主、软链接
文件名编码由打包方决定,跨平台易乱码通常按 UTF-8 处理,工具行为一致
随机访问中央目录在尾部,可单独解出某文件流式格式,需顺序读取
典型用途交付客户、跨平台分享服务器部署、需保留权限的归档
-x 的排除模式要对整个路径匹配,模式里带路径片段时加引号防止 shell 提前展开,例如 '*/cache/*' 才能排除所有层级下的 cache 目录。
zip -e 使用的传统加密存在已知弱点,不适合传输敏感数据。需要加密交付时使用 7z 的 AES-256(-p 配合 -mhe=on 加密文件名)或 gpg 加密。

易错点

  • 忘记 -r:只把目录名本身打进包里,解压后得到空目录
  • -x 模式不加引号会被 shell 提前展开,排除规则实际失效
  • zip 的传统加密强度不足,敏感内容应用 7z 的 AES-256 或 gpg
  • 收到 Windows 打包的中文名包在 Linux 解压乱码,交付前要确认目标平台的编码处理方式

数据来源与参考

  • man 1 zip(Info-ZIP 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌