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/`
相关推荐
looking_for__10 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·网络
云中飞鸿10 小时前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
嵌入小生00710 小时前
Standard IO -- Continuation of Core Function Interfaces (Embedded Linux)
linux·vim·嵌入式·标准io·vscode
Zach_yuan10 小时前
传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制
linux·网络协议·tcp/ip·udp
独自归家的兔10 小时前
Ubuntu 系统 systemd timers 详解:替代 crontab 的定时任务进阶方案
linux·运维·ubuntu
Lsir10110_10 小时前
【Linux】深入解剖页表——分页式存储
linux·运维·服务器
爱吃生蚝的于勒10 小时前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
fengyehongWorld10 小时前
Linux yq命令
linux·运维·服务器
岁岁种桃花儿10 小时前
Flink从入门到上天系列第一篇:搭建第一个Flink程序
大数据·linux·flink·数据同步
_OP_CHEN10 小时前
【Linux系统编程】(二十九)深度解密静态链接:从目标文件到可执行程序的底层魔法
linux·操作系统·链接·文件系统·c/c++·静态链接