Linux 系统中的 .7z 压缩与解压详解

[复制链接]
发表于 2026-10-5 11:51:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、7z 格式的特点

在 Linux 世界里,.7z 是压缩率表现很突出的一种格式。它默认使用 LZMA / LZMA2 算法,同样的文件压出来通常比 gzip、zip 小一截,还自带加密和分卷能力。代价是压缩耗 CPU 比 gzip 多一些,所以在需要极致速度的场景(比如日志日志实时打包)大家还是更爱用 gzip。

本文按"装工具 → 压缩 → 解压 → 查看 → 常见批量操作"的顺序讲一遍,命令都可以直接照抄。

二、安装 p7zip 工具

多数发行版不预装 p7zip,先根据包管理器装上:

2.1 Ubuntu / Debian

sudo apt update
sudo apt install p7zip-full p7zip-rar

p7zip-full 提供 7z 系列主命令(7z、7za),p7zip-rar 用来读取 RAR 格式,视需求选装。

2.2 CentOS / Fedora

sudo yum install p7zip p7zip-plugins

2.3 Arch Linux

sudo pacman -S p7zip

装完确认版本:7z i 或 7z --version 能打印信息就说明可用了。

三、压缩操作

7z 的命令结构是「子命令 + 压缩包名 + 要压的文件」,第一个参数就是子命令,这是它和 zip、tar 不太一样的地方。

3.1 压缩单个文件

7za a example.7z example.txt

这里的 a 是 add,意思是把文件加进压缩包,生成 example.7z。

3.2 压缩多个文件

7za a archive.7z file1.txt file2.txt file3.txt

把要压的文件挨个列在后面即可,会自动打进同一个 archive.7z。

3.3 压缩整个目录

7z a backup.7z /path/to/directory

7z 会递归处理目录下所有文件和子目录,不用自己 find 拼列表。

3.4 加密码保护

7za -pYourPassword a archive_encrypted.7z file1.txt file2.txt

-p 后面直接跟密码。注意:7z 的加密强度取决于你用的 7z 版本,较新的版本默认用 AES-256,安全性够用;密码本身别太简单,压完了忘了比压不动还麻烦。

3.5 自定义压缩级别

压缩级别用 -mx 控制,范围 0(不压缩)到 9(最高压缩):

7za -mx=9 a highly_compressed.7z largefile.txt

级别越高压得越小、耗时越长。默认级别是 -mx=5,属于速度和体积的平衡点。大文件归档追求体积可以上 9,实时打包上 6~8 就够。

四、解压操作

4.1 解压到当前目录

7z x archive.7z

子命令用 x(eXtract),它会完整还原目录结构。如果只要把文件摊平到当前目录、不保留原路径,用 e。

4.2 解压到指定目录

7z x archive.7z -o/path/to/directory

这里有个必须记住的细节:-o 和目标路径之间不能有空格,写成 -o /path 会被当成另一个参数直接报错。这是 7z 和 tar 习惯不同造成的坑,一次踩过就记得了。

4.3 解压带密码的压缩包

7z x -pYourPassword archive_encrypted.7z

密码对了就正常解出,错了会提示密码错误并中止——不会给你半个文件。

4.4 只解出其中几个文件

7z e archive.7z file1.txt file2.txt

从包里挑指定文件出来,其余的不动。归档里有几千个文件时这个用法很省事。

五、查看压缩包内容

7z l archive.7z

l 是 list,不会解包,只列出里面的文件清单,包含大小、路径、压缩率等信息。解压之前先 l 一眼,能避免"解压完发现路径不对要重来"。

六、常用批量实例

6.1 通配符批量压缩

7za a archive.7z *.txt

当前目录下所有 .txt 一次性打包。

6.2 批量解压多个 7z

for file in *.7z; do 7z x "$file"; done

遍历当前目录每一个 7z 分别解压。注意 $file 要加引号,文件名里有空格时不会断。

6.3 检查压缩包完整性

7z t archive.7z

t 是 test,只做完整性校验不落地文件。输出测试通过说明包没坏,适合在下载完、备份前验一下,尤其是从网盘或邮件附件拿到的包。

6.4 分卷打包(大文件传输常用)

7z a -v100m big.7z /path/to/largefile

-v100m 表示每 100MB 切一个分卷,生成 big.7z.001、big.7z.002……适合用邮件或上传单文件有限制的平台传大文件。合并回来只要把分卷按序放到同一目录,用同一个解压命令即可。

七、小结

7z 这套工具真正的记忆点有三个:命令第一位是子命令(a 加、x 解、l 看、t 验);-o 后面不空格;-p 是密码、-mx 是压缩级别。把这三条记牢,剩下就是查目录路径和设压缩级别的事。实际工作里最实用的组合是:归档备份用 -mx=9 配 t 验完整性,跨机传输用分卷加密码,本地临时打包 -mx=5 图快。工具本身不复杂,难点从来都是"路径对不对、密码记没记、包有没有坏"这三件小事。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表