商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何在Linux中解压7z格式压缩包

如何在Linux中解压7z格式压缩包

  发布于2026-08-22 阅读(0)

扫一扫,手机访问

要正确解压7z文件,需先安装p7zip-full,不同Linux发行版安装方式不同:Ubuntu/Debian用sudo apt install p7zip-full;CentOS/RHEL 7要先启用EPEL,再用sudo yum install p7zip-full;Fedora/CentOS 8+用sudo dnf install p7zip-full;Arch系用sudo pacman -S p7zip(注意:Arch的p7zip包等价于其他发行版的p7zip-full)。安装完成后,使用7z x命令解压,它会保留文件路径;而7z e会将文件平铺到当前目录,可能覆盖同名文件。解压前还可以用7z l命令预览文件列表,若有中文路径,需加-mcp=GBK参数。另外,进行系统备份时,建议先使用tar命令打包,再用7z压缩,这样可以避免权限丢失。

如何在Linux中解压7z格式压缩包

直接用 7z x 命令就能解压,但前提是系统已安装 p7zip-full —— 装错包(比如只装 p7zip)或用错命令(比如误用 7z e)会导致目录结构丢失、权限异常甚至报“未支持的压缩方法”错误。

确认并安装正确的 p7zip 包

很多用户卡在第一步:7z 命令不存在,或执行时报错“command not found”或“unsupported method”。这不是路径问题,而是装错了包。

  • Ubuntu/Debian 系统必须运行 sudo apt install p7zip-full,不能只装 p7zip(它缺 LZMA2、BCJ 等关键解码器)
  • CentOS/RHEL 7 需先启用 EPEL:sudo yum install epel-release && sudo yum install p7zip p7zip-plugins
  • Fedora/CentOS 8+ 用 sudo dnf install p7zip-full
  • Arch/Manjaro 直接 sudo pacman -S p7zip 即可(其 p7zip 包等价于其他发行版的 p7zip-full
  • 装完验证:7z --help | head -n 3 应输出类似 7-Zip [64] 21.07 的版本信息

7z x 解压并保留完整路径

7z e 会把所有文件平铺到当前目录,破坏原始层级;7z x 才是真正还原路径的正确方式。这是最常被忽略的操作差异。

  • 解压到当前目录:7z x archive.7z
  • 解压到指定目录(如 /tmp/out):7z x archive.7z -o/tmp/out(注意:-o 和路径间**不能有空格**)
  • 解压带密码的包:7z x archive.7z -pmypass(密码紧贴 -p,无空格;若含空格或特殊字符,用单引号包裹:-p'my pass!'
  • 解压分卷包(如 archive.7z.001):只需对第一个分卷执行 7z x archive.7z.0017z 会自动识别并加载后续分卷

解压前务必用 7z l 预览内容

不看内容直接解压,容易覆盖同名文件,或发现解出来一堆乱码路径(比如 Windows 下生成的 UTF-16 路径在 Linux 终端显示为问号)。7z l 是零风险检查手段。

  • 列出所有文件及编码提示:7z l archive.7z
  • 若看到路径显示为 ???.txt 或大量 ,说明压缩时用了非 UTF-8 编码(常见于 Windows 7z GUI 默认 GBK),此时需加 -mcp=GBK 参数:7z x archive.7z -mcp=GBK
  • 若压缩包里有绝对路径(如 /home/user/file.txt),7z x 默认仍会按相对路径解出;如需强制按绝对路径还原(极少见且危险),得配合 tar 中转,不能仅靠 7z

系统备份场景下不要单独用 7z

.7z 格式本身不保存 Linux 文件的属主(owner)、用户组(group)、ACL、扩展属性(xattr)和硬链接信息。直接用 7z x 恢复系统备份会导致权限混乱、服务无法启动。

  • 正确做法是:先 tar -cf - /data | 7z a -si backup.tar.7z(打包再压缩)
  • 恢复时:先 7z x -so backup.tar.7z | tar xf - -C /restore(解压流再解包)
  • 若已有一个纯 .7z 包且含重要系统文件,解压后需手动用 chownchmod 重置权限,无法自动还原原始元数据

真正麻烦的不是命令记不住,而是默认行为和隐含限制——比如 -o 后不能有空格、7z e7z x 的路径处理逻辑完全不同、中文路径需要额外指定编码。这些细节一旦出错,解出来的文件就可能散落一地或根本打不开。

本文转载于:https://www.php.cn/faq/3025515.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注