Linux p7zip命令
Linux p7zip命令使用指南
以下为 Linux 上 p7zip 命令的详细指南,涵盖安装、核心命令、参数详解及实用示例。p7zip 是开源7-Zip工具的Linux移植版,支持高压缩率的 .7z 格式及其他常见压缩格式。
1. 安装 p7zip
bash
# Debian/Ubuntu
sudo apt install p7zip-full p7zip-rar # 完整版(含RAR支持)
# Red Hat/CentOS
sudo yum install p7zip-plugins p7zip # 或使用 dnf
# Arch Linux
sudo pacman -S p7zip2. 核心命令语法
bash
7z [<选项>...] <命令> [<开关>...] <存档文件名> [<文件路径>...] [<通配符>...]3. 常用命令列表
| 命令 | 功能 |
|---|---|
a | 添加文件到压缩包 |
e | 解压文件(无视目录结构) |
x | 解压文件(保持目录结构) |
l | 列出压缩包内容 |
t | 测试压缩包完整性 |
d | 删除压缩包内文件 |
u | 更新压缩包内文件 |
4. 关键参数详解
| 参数 | 说明 |
|---|---|
-m{属性} | 设置压缩方法(见下文) |
-p{密码} | 设置加密密码(如 -p12345) |
-r | 递归处理子目录 |
-o{目录} | 指定解压输出目录(如 -o/home/user) |
-y | 所有询问默认选"是" |
-v{大小} | 分卷压缩(如 -v100m) |
-t{类型} | 指定压缩格式(如 -tzip) |
5. 压缩方法(-m 参数)
| 方法 | 说明 |
|---|---|
0=lzma | 默认LZMA算法(高压缩比) |
1=lzma2 | LZMA2(多核优化) |
2=bzip2 | BZip2(平衡速度/压缩率) |
3=deflate | ZIP标准算法 |
-mx=9 | 最高压缩级别(0-9) |
6. 命令速查表
| 操作 | 命令 |
|---|---|
| 压缩 | 7z a -t7z -mx=9 存档名.7z 文件/ |
| 解压 | 7z x 存档名.7z -o输出目录/ |
| 列内容 | 7z l 存档名.zip |
| 测试 | 7z t 损坏包.rar |
| 加密 | 7z a -p密码 加密包.7z 敏感文件 |
7. 分卷速查表
| 操作 | 命令 |
|---|---|
| 创建100MB分卷 | 7z a -v100m archive.7z BIG_FILE |
| 解压分卷 | 7z x archive.7z.001 |
| 合并分卷 | cat archive.7z.* > full.7z |
| 测试分卷 | 7z t backup.7z.003 |
| 带密码分卷 | 7z a -v200m -pPASS secure.7z data |
分卷压缩创建
bash# 基础分卷 (100MB/卷) 7z a -v100m archive.7z large_file.iso # 带密码的分卷压缩 7z a -v500m -pMyPassword secret.7z sensitive_data.db # 自定义分卷大小 (支持K/M/G单位) 7z a -v2g huge_backup.7z /backup # 2GB/卷 7z a -v50k logs.7z logfile.txt # 50KB/卷分卷解压操作
bash# 标准解压 (从.001文件开始) 7z x archive.7z.001 # 解压到指定目录 7z x backup.7z.001 -o/home/user/restore/ # 解压加密分卷 7z x secret.7z.001 -pMyPassword手动合并分卷
bash# 合并分卷为完整文件 cat archive.7z.* > full_archive.7z # 然后解压合并后的文件 7z x full_archive.7z
8. 核心算法对比
| 代码 | 算法 | 特点 | 适用场景 |
|---|---|---|---|
0=lzma | LZMA (Lempel-Ziv-Markov) | • 最高压缩比 • 较慢的压缩速度 • 单线程处理 | 需要极致压缩率 (如长期存档) |
1=lzma2 | LZMA2 (LZMA改进版) | • 接近LZMA的压缩率 • 支持多线程 • 处理不可压缩数据更快 | 大文件压缩 (默认推荐) |
2=bzip2 | BZip2 | • 平衡压缩率/速度 • 广泛兼容性 • 中等资源消耗 | 通用压缩 跨平台需求 |
性能参考:
压缩率:lzma≈lzma2>bzip2>gzip
压缩速度:bzip2>lzma2>lzma
算法支持矩阵
| 格式 | Deflate | LZMA | LZMA2 | BZip2 |
|---|---|---|---|---|
| .zip | ✅ | ❌ | ❌ | ❌ |
| .7z | ✅ | ✅ | ✅ | ✅ |
| .tar | - | - | - | - |
9. 后台执行
方法 1:使用 nohup(最简单)
bash
nohup 7za a -v4000m -m0=lzma2 -mx=9 Ubackup.7z Ubackup/ > compression.log 2>&1 &说明:
nohup:保持命令在退出终端后继续运行> compression.log:将输出重定向到日志文件2>&1:将错误输出合并到标准输出&:后台运行- 查看进度:
tail -f compression.log
方法 2:使用 screen(推荐)
bash
# 1. 创建screen会话
screen -S backup_compress
# 2. 在screen会话中运行命令
7za a -v4000m -m0=lzma2 -mx=9 Ubackup.7z Ubackup/
# 3. 按 Ctrl+A 然后按 D 脱离会话
# 4. 重新连接会话查看进度
screen -r backup_compress
# 5. 退出screen会话(压缩完成后)按 Ctrl+D10. 实用操作示例
压缩文件/目录
bash7z a -t7z -m0=lzma2 -mx=9 archive.7z /path/to/folder # 最高压缩率 7z a -pMyPassword encrypted.7z secret.txt # 加密压缩 7z a -v100M split_files.7z large_file.iso # 分卷压缩(100MB/卷)解压文件
bash7z l archive.zip # 列出文件 7z l -slt archive.7z # 显示详细信息(大小/日期/CRC)查看压缩包内容
bash7z l archive.zip # 列出文件 7z l -slt archive.7z # 显示详细信息(大小/日期/CRC)更新/删除压缩包内文件
bash7z u archive.7z newfile.txt # 添加更新文件 7z d archive.7z oldfile.txt # 删除内部文件测试压缩包完整性
bash7z t broken.7z # 检测错误支持其他格式
bash7z x file.zip # 解压ZIP 7z x file.rar # 需安装 p7zip-rar 7z x file.tar.gz # 自动识别tar.gz