结论先行 Linux 下处理 7z 压缩包使用 p7zip 工具包,最常用解压命令是 7z x 压缩包,x 参数代表完整保留目录结构解压,也是日常首选,另外还有 7z e 参数,会把所有文件全部平铺释放到当前目录,不保留原有文件夹层级,新手很容易混淆 x 和 e 的区别,使用前要确认系统已经安装 p7zip,如果没有安装会提示 command not found,7z 支持带密码加密压缩包,解压时可以指定密码,同时支持查看压缩包内容、分卷压缩包自动识别解压,适合大文件归档场景。
一 前置安装
Ubuntu Debian
sudo apt install p7zip-full
CentOS RHEL 7 8 9
sudo dnf install p7zip p7zip-plugins
说明 p7zip-full 包含完整功能,推荐安装完整版,精简包部分高级功能缺失
二 基础语法
7z x 压缩包文件名
核心参数说明
x 解压,保留原始目录结构 推荐
e 解压,丢弃目录层级,所有文件平铺到当前文件夹
-o 指定解压输出目录,注意 o 和路径之间不能有空格
-p 解压带密码压缩包
-l 列出压缩包内部文件清单,不解压
-y 所有询问自动回答 yes,不需要人工确认
三 常用实操示例
示例 1 标准解压 保留目录结构
7z x test.7z
示例 2 指定输出目录
7z x test.7z -o/home/user/output
示例 3 带密码解压
7z x test.7z -p 你的密码
如果不写密码,执行后会交互式提示输入密码
示例 4 平铺解压 不保留文件夹
7z e test.7z
示例 5 查看压缩包内文件
7z l test.7z
示例 6 分卷压缩包解压 后缀 test.7z.001
7z x test.7z.001
工具会自动识别同目录下后续分卷 002 003 连续解压
四 x 和 e 参数对比表格
| 参数 | 目录结构 | 适用场景 |
|---|---|---|
| x | 保留原文件夹层级 | 绝大多数常规解压,推荐 |
| e | 全部文件平铺 | 只需要提取所有文件,不需要目录 |
五 常见报错排查
1 command not found
原因 未安装 p7zip,按照上面安装命令安装
2 提示需要密码
原因压缩包加密,添加 -p 参数或者交互输入密码
3 分卷解压失败
原因分卷文件不全,确认 001 002 全部放在同一目录,文件名连续
4 权限报错
目标目录没有写入权限,加 sudo 或者更换可写目录
六 补充 压缩命令对照
7z a new.7z 待压缩文件
a 参数代表添加文件生成 7z 压缩包,方便和解压命令区分记忆
常见问题
问题 1 linux7z 解压命令 x 和 e 应该优先选哪个
回答 1 linux7z 解压命令日常优先选 x,x 会保留原本目录层级,e 是平铺释放,只有明确不需要文件夹结构才使用 e。
问题 2 linux7z 解压命令 -o 参数为什么报错
回答 1 linux7z 解压命令的 -o 后面紧跟输出路径,中间不能加空格,写成 -o /path 是错误格式,正确写法是 -o/path。
问题 3 linux7z 解压命令能不能解压加密 7z 包
回答 1 linux7z 解压命令支持加密包,使用 -p 参数传入密码,也可以执行后手动交互输入密码。
问题 4 linux7z 解压命令支持分卷 7z 吗
回答 1 linux7z 解压命令支持分卷压缩包,只需要解压第一个分卷 001,工具自动读取后续连续分卷完成全部解压。
免责申明
本内容为 Linux 命令学习参考,不同发行版 p7zip 版本参数基本一致,若遇到版本差异以 man 手册 man 7z 为准,本教程仅作学习参考,不构成官方技术支持。


