首页/系统/信创系统运维速查/zip/unzip 与 7z 压缩包
命令与包管理65 条

zip/unzip 与 7z 压缩包

与 Windows 交换文件的常见格式:zip -r 打包目录,unzip -l 查看、-d 指定目录;7z 处理多格式与文件名编码更省心。

信创系统运维速查系统更新于 2026-10-13

压缩包工具怎么选

和 Windows 交换文件时最通用的是 zip 格式,Linux 侧用 zip/unzip 就能处理;7z 能识别更多容器格式(zip、7z、rar、tar 等),对文件名编码的处理也更宽容,遇到 Windows 传来的乱码包通常换它就能正常解出中文名。信创桌面与服务器上装包里通常要额外安装 p7zip 才有 7z 命令。

基本信息

打包zip -r out.zip dir/
查看内容unzip -l out.zip、7z l out.zip
解压unzip out.zip -d /target、7z x out.zip
安装 7zdnf install -y p7zip(Debian 系为 p7zip-full)
常用选项-r 递归、-q 静默、-o 覆盖、-x 排除
权限要求普通用户;解压到系统目录或改属主才需 root

典型使用场景

  • 把日志目录打包发给厂商做故障分析
  • 接收 Windows 同事发来的压缩资料,需要保留中文文件名
  • 部署前解压离线安装包到指定目录
  • 批量归档时排除临时文件与缓存目录
  • 需要给多方分发且对方只用 Windows 时选 zip 格式

打包与查看

打包与查看
zip -r report.zip report/                 # 递归打包整个目录
zip -r logs.zip logs/ -x '*.tmp' '*/cache/*'  # 排除临时文件与缓存目录
unzip -l report.zip | head                # 只列内容不解压
unzip -l report.zip | grep -c '\.txt$'     # 统计某类文件数量,核对是否完整

解压与编码处理

解压与编码处理
unzip -q report.zip -d /data/report          # 静默解压到指定目录
unzip -o report.zip -d /data/report         # 覆盖已存在文件
7z l win-files.zip                           # 先看压缩包内容与文件名显示是否正常
7z x win-files.zip -o/data/win-files         # 7z 解压,中文名乱码时通常更规范
convmv -f gbk -t utf-8 -r --notest /data/win-files   # 需要时把文件名从 GBK 转 UTF-8

常用选项对照

需求zip/unzip 写法7z 写法
递归打包目录zip -r out.zip dir/7z a out.zip dir/
查看内容不写盘unzip -l out.zip7z l out.zip
解压到指定目录unzip out.zip -d /target7z x out.zip -o/target
覆盖已有文件unzip -o7z x -aoa
中文名乱码换用 7z 解压7z x 或配合 convmv 转码
排除指定文件zip -x '模式'7z a -xr!'模式'
Windows 传过来的 zip 常用 GBK 编码存文件名,Linux 下按 UTF-8 解读就会乱码:先确认是显示问题还是实际文件名问题,再决定是否用 convmv 之类工具转换。
unzip 默认解压到当前目录:脚本里务必写清 -d 目标路径,否则会把一堆文件撒在运行目录里,污染其他程序的目录结构。

易错点

  • unzip 不带 -d,脚本在业务目录里执行时把压缩包内容撒得到处都是,回滚困难
  • Windows 压缩包中文名乱码后靠逐个重命名解决,量大时不可行,应识别原始编码统一转换
  • 用 zip 打包时未排除缓存与临时文件,包体积膨胀且把无关数据一起外发
  • 解压时不看清单直接覆盖已有目录里的同名文件,属于不可逆覆盖,应先解到临时目录比对
  • 在只装了 unzip 的最小化系统上处理 rar 或 7z 包,命令不存在却反复怀疑文件损坏,应先补 p7zip 等工具

数据来源与参考

  • Info-ZIP unzip 文档
  • 7-Zip 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌