Linux的unzip

Linux的unzip

unzip

1、作用

7z 是 Linux 下功能强大的压缩/解压工具(基于 p7zip),支持 7z、ZIP、RAR、TAR、GZ 等几乎所有压缩格式,其参数分为核心操作指令辅助选项

2、格式

bash 复制代码
7z

3、参数

a、核心操作指令(必选,指定7z要执行的动作)

这类参数是 7z 的核心,必须放在命令首位,决定"压缩/解压/查看"等核心行为:

参数 全称 作用 示例
a Add 创建压缩包(添加文件/目录到7z包) 7z a test.7z /tmp/file1.txt /tmp/doc
x eXtract 按原目录结构解压(推荐,保留子目录) 7z x test.7z -o/tmp/extract
e Extract 平铺解压(所有文件解压到同一目录,不保留子目录) 7z e test.7z
l List 查看压缩包内容(不解压,仅解析) 7z l test.7z
t Test 测试压缩包完整性(检查是否损坏) 7z t test.7z
u Update 更新压缩包内的文件(替换旧文件/添加新文件) 7z u test.7z /tmp/new_file.txt
d Delete 删除压缩包内的指定文件/目录 7z d test.7z doc/old.txt
r Repair 修复损坏的压缩包(生成修复后的新包) 7z r broken.7z

b、常用辅助选项(可选,细化操作行为)

这类参数配合核心指令使用,调整压缩/解压的细节规则:

参数 作用 适用场景 示例
-o 指定输出目录(解压/修复时),-o和目录间无空格 解压到指定路径 7z x test.7z -o/tmp/extract
-p 指定压缩/解压密码(-p和密码间无空格) 加密/解密压缩包 7z x encrypted.7z -p123456
-r 递归处理子目录(压缩/解压时包含所有子文件) 处理多层目录 7z a test.7z /tmp/ -r
-y 所有提示默认"是"(无需手动确认,批量操作) 自动化脚本 7z x test.7z -y
-mx 设置压缩级别(x=0~9,0=无压缩,9=最高压缩,默认5) 调整压缩率/速度 7z a test.7z /tmp/ -mx9(极致压缩)
-aoa 覆盖已有文件(解压时强制覆盖) 替换旧文件 7z x test.7z -aoa
-aon 不覆盖已有文件(解压时跳过已存在文件) 保留旧文件 7z x test.7z -aon
-ax 排除指定文件/目录(压缩时) 过滤不需要的文件 7z a test.7z /tmp/ -ax!*.log
-si 从标准输入读取数据(压缩) 管道传数据 `cat file.txt
-so 解压到标准输出(不解压到磁盘) 直接读取压缩包内文件 `7z x test.7z -so file.txt
-bt 显示执行时间统计(压缩/解压耗时) 性能测试 7z a test.7z /tmp/ -bt
-v 分卷压缩(指定每个分卷大小) 大文件拆分 7z a test.7z /tmp/ -v100M(每卷100M)

c、格式专属选项(指定压缩格式)

7z 默认生成 .7z 包,可通过 -t 参数指定其他格式(如 ZIP/RAR):

参数 作用 示例
-t7z 生成7z格式(默认) 7z a -t7z test.7z /tmp/
-tzip 生成ZIP格式 7z a -tzip test.zip /tmp/
-ttar 生成TAR格式 7z a -ttar test.tar /tmp/
-tgzip 生成GZIP格式 7z a -tgzip test.gz /tmp/

d、冷门但实用的参数

参数 作用
-scsUTF-8 指定文件名编码为UTF-8(解决中文乱码)
-scsGBK 指定文件名编码为GBK(兼容Windows生成的压缩包)
-mmt 启用多线程压缩(加速,-mmt8 表示8线程)
-md 设置字典大小(越大压缩率越高,占用内存越多,如 -md64m

4、参数使用优先级

  1. 核心指令(a/x/l/t等)必须放在最前;
  2. 格式参数(-txxx)紧跟核心指令;
  3. 辅助选项(-o/-p/-r等)放在后面;
  4. 最后指定压缩/解压的文件/目录。

常用场景

zip文档

1、添加指定路径下文件夹内的所有文件到一个压缩包

bash 复制代码
# 将 `/tmp` 下所有文件添加到 `test.7z`(创建压缩包)
7z a test.7z /tmp/*

2、解压到指定目录

bash 复制代码
# 将 `test.7z` 按目录结构解压到 `/tmp/ext`
 7z x test.7z -o/tmp/ext

3、查看包内的txt文件

bash 复制代码
# 仅查看包内所有 `.txt` 文件。
7z l test.7z "*.txt"

4、递归压缩 /tmp 所有文件,使用最高压缩级别

bash 复制代码
7z a test.7z /tmp/ -mx9 -r

5、自动确认所有提示,用密码123解压到 /tmp/ext

bash 复制代码
7z x test.7z -o/tmp/ext -y -p123

6、压缩时排除 .log.tmp 文件

bash 复制代码
7z a test.7z /tmp/ -ax!*.log -ax!*.tmp

7、解压Windows生成的中文文件名7z包,避免乱码

bash 复制代码
 7z x test.7z -scsGBK

7z文档

1、生成 ZIP 格式包,压缩级别5

bash 复制代码
7z a -tzip -mx5 test.zip /tmp/`
相关推荐
消失的旧时光-194316 分钟前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑24 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
Trouvaille ~1 小时前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
旖旎夜光1 小时前
Linux(13)(中)
linux·网络
威迪斯特2 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.2 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔2 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX2 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞052 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*2 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器