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/`
相关推荐
Xの哲學1 天前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
知识分享小能手1 天前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04的Linux网络配置(14)
linux·学习·ubuntu
皇族崛起1 天前
【视觉多模态】- scannet 数据的 Ubuntu 百度网盘全速下载
linux·ubuntu·3d建模·dubbo
CAU界编程小白1 天前
Linux系统编程系列之进程控制(下)
linux·进程控制
RisunJan1 天前
Linux命令-ifconfig命令(配置和显示网络接口的信息)
linux·运维·服务器
LaoWaiHang1 天前
Linux基础知识04:pwd命令与cd命令
linux
lbb 小魔仙1 天前
【Linux】100 天 Linux 入门:从命令行到 Shell 脚本,告别“光标恐惧”
linux·运维·服务器
小张成长计划..1 天前
【Linux】1:基本指令
linux
OliverH-yishuihan1 天前
在win10上借助WSL用VS2019开发跨平台项目实例
linux·c++·windows
早川9191 天前
Linux系统
linux·运维·服务器