首页/系统/Linux 运维命令速查/7z 压缩与解压(p7zip)
文件与目录76 条

7z 压缩与解压(p7zip)

高压缩率 + AES-256 加密 + 分卷 + 跨平台,是加密归档与 Windows 中文 zip 乱码的通用解决方案。

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

7z 是什么

7z 是 7-Zip 的命令行归档工具,Linux 上由 p7zip / p7zip-full 提供,命令有 7z、7za、7zr 三个变体。它的核心优势是 LZMA / LZMA2 带来的高压缩率,以及原生支持 AES-256 加密并可连文件名一起加密(-mhe=on)。除了自家的 7z 格式,它也能创建与解开 zip、gzip、tar、xz 等常见格式,因此常被用来处理 Windows 用 GBK 文件名打包、Linux 解压时出现乱码的 zip 文件。

基本信息

适用平台Linux(p7zip-full)、Windows(7-Zip)、macOS(p7zip 等移植版)
语法7z <a|x|l|t|e|d|u> [选项] 归档名 [文件或目录]
主要动作a 添加 l 列表 t 测试 x 带路径解压 e 平铺解压
加密-p 指定口令,-mhe=on 隐藏文件名(仅 7z 格式)
分卷-v1g 表示每卷 1GB
格式支持Debian / Ubuntu 装 p7zip-full 才有完整格式支持

典型使用场景

  • 打包加密归档后交付或上传,AES-256 比 zip 的传统加密强度高得多。
  • 在 Linux 上解开 Windows 传来的中文 zip,避免文件名乱码或报非法字符。
  • 把大目录压缩后做异地备份,用 -v 分卷切到实际介质容量再逐一搬运。
  • 归档前用 7z t 测试压缩包完整性,确认能解开再删除原始数据。
  • 重压缩日志、镜像等大文件以便传输,前提是内容本身可被压缩。

常用写法

常用写法
7z a backup.7z /data/app                 # 把目录打包成 7z
7z a -p -mhe=on secret.7z private/       # 口令加密并隐藏文件名
7z a -mx=9 -v1g parts.7z big.iso         # 最高压缩等级 + 每卷 1GB 分卷
7z l backup.7z | head -20                # 只列内容,不解压
7z l -slt backup.7z | grep -i method     # 查看压缩与加密方法
7z t backup.7z                           # 测试归档是否损坏
7z x backup.7z -o/restore/               # 按原目录结构解压到指定路径
ls -lh backup.7z                         # 确认归档大小与预期一致

动作逐项读法

动作或选项作用使用要点
a创建或追加归档同名归档已存在时是追加,不是覆盖
x按原路径解压保留目录结构,恢复备份用这个
e平铺解压文件全倒进当前目录,易覆盖同名文件
l 与 -slt列表与详细列表-slt 能看到加密方法,确认是否 AES-256
-v1g创建分卷解压时只需指定第一片
-mx=9最高压缩等级CPU 代价明显,先用小样试压缩比
-p 后不跟口令时 7z 会交互提示输入,这是更安全的用法:把口令直接写在命令行里会进入 shell 历史、进程列表和审计日志,泄露后归档等同于明文。自动化场景用受限权限的口令文件或交互输入,并在密码库中留档。
7z、7za、7zr 能力不同:7zr 只认 7z 格式,7za 是精简独立版,发行版不装 full 包时可能缺 zip 支持。脚本统一用 7z 并在目标机确认包已安装,能避免在别的机器上突然报 unsupported method。
-mhe=on 只对 7z 格式有效,开启后连目录结构与文件名都不可见,代价是没法在不给口令的情况下列出内容,交接给他人时要提前说明口令传递方式。

易错点

  • 分卷归档只搬了一部分,缺任何一片都会在解压时报数据截断,整包报废;分卷必须整组搬运,校验也要按整组做。
  • 把口令写进命令行会留在 shell 历史、ps 输出与审计日志中,等同泄露;归档加密后仍需在密码管理系统登记口令,并定期轮换。
  • e 动作会把所有文件平铺到当前目录并可能覆盖同名文件,解开来源不明的包前先 l 看清单,再 x 到新建的空目录。
  • zip 的传统加密(ZipCrypto)可被已知明文攻击,不能当作保密手段;需要机密性时统一用 7z 的 AES-256,并明确告知接收方工具要求。
  • 压缩被中断留下的半成品有时仍是合法归档但内容不全;删除源数据前必须先 7z t 或试解压验证,不要凭文件大小判断成功。

数据来源与参考

  • 7-Zip 官方文档(7-zip.org)

相关工具

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