linux-command/command/7z.md

143 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

7z
===
拥有极高压缩比的开源压缩软件。
## 安装
在 Linux 中输入以下命令安装 7-Zip。
```bash
# Ubuntu 系统
apt-get update
apt-get install p7zip-full -y
# CentOS 参考https://linuxconfig.org/how-to-install-p7zip-on-redhat-8
sudo yum install epel-release
yum install p7zip p7zip-plugins
```
## 实例
介绍几个常用场景:解压、压缩、查看(压缩包内容)。
1、将压缩文件 text.7z 在当前目录下解压缩。
```bash
7z x text.7z
```
2、将压缩文件 text.7z 在指定目录(/home/text)下解压缩。
```bash
# 注意 -o 用来指定解压缩文件存放目录,-o 后是没有空格的,直接接目录
7z x text.7z -r -o/home/text
```
3、将压缩文件 text.7z 中的 `dir1/dir2``dir1/file1` 提取到在指定目录(/home/text)下(保持原有路径结构)。
```bash
# 注意 dir1/dir2dir1/file1 为压缩包中文件或文件夹路径
7z x text.7z dir1/dir2 dir1/file1 -o/home/text
```
4、将文件 /home/text 压缩成 text.7z。
```bash
7z a text.7z -r /home/text
```
5、查看压缩包 text.7z 内容,但不解压。
```bash
7z l text.7z
```
## help 信息翻译
```shell
使用方法: 7z <命令> [<开关>...] <archive_name> [<file_names>...
<命令>
a : 添加文件到压缩包
b : 基准测试
d : 从压缩包中删除文件
e : 从压缩包中提取文件(不使用目录名)。
h : 计算文件的哈希值
i : 显示支持的格式信息
l : 列出压缩包的内容
rn : 重命名压缩包中的文件
t : 测试压缩包的完整性
u : 更新压缩包中的文件
x : 提取完整路径的文件
<开关>
-- : 停止对 - 开头的开关和 @ 开头的文件列表的解析,为了允许 7-Zip 使用以 - 和 @ 开头的文件名。
-ai[r[-|0]]{@listfile|!wildcard} : 包括指定压缩包文件
-ax[r[-|0]]{@listfile|!wildcard} : 排除指定压缩包文件
-ao{a|s|t|u} : 设置覆写模式
-aoa 覆盖所有现有文件,无提示。
-aos 跳过提取现有文件。
-aou 自动重命名提取的文件例如name.txt 将重命名为 name_1.txt
-aot 自动重命名现有文件例如name.txt 将重命名为 name_1.txt
-an : 禁用压缩包名称字段解析,必须与 -ai 开关一起使用。
-bb[0-3] : 设置输出日志级别
-bb0 禁用日志(默认)。
-bb1 或 -bb 在日志中显示已处理文件的名称。
-bb2 显示在压缩包文件中跳过的文件名称(对于 “提取” 操作)和重新打包的文件名称(对于 “添加” / “更新” 操作)
-bb3 显示 “添加” / “更新” 操作的其他操作(分析、复制)信息。
-bd : 禁用进度指示器
-bs{o|e|p}{0|1|2} : 设置输出/错误/进度行的输出流
o 标准输出信息
e 错误信息
p 进度信息
0 禁用流
1 重定向到标准输出流
2 重定向到标准错误流
-bt : 显示执行时间统计
-i[r[-|0]]{@listfile|!wildcard} : 包括文件名
-m{Parameters} : 设置压缩方法
-mmt[N] : 设置 CPU 线程的数量
-mx[N] : 设置压缩级别: -mx1 (最快) ... -mx9 (超强)-mx0不压缩
-o{Directory} : 设置输出目录
-p{Password} : 设置密码
-r[-|0] : 重新搜索子目录
-sa{a|e|s} : 设置压缩包名称模式
-scc{UTF-8|WIN|DOS} : 设置控制台输入/输出的字符集。
-scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : 设置列表文件的字符集。
-scrc[CRC32|CRC64|SHA1|SHA256|*] : 为x、e、h命令设置哈希函数。
-sdel : 压缩后删除文件
-seml[.] : 通过电子邮件发送压缩包
-sfx[{name}] : 创建 SFX 压缩包
-si[{name}] : 从标准输入读取数据
-slp : 设置大型页面模式
-slt : 显示lList命令的技术信息
-snh : 将硬链接存储为链接
-snl : 将符号链接存储为链接
-sni : 存储 NT 安全信息
-sns[-] : 存储 NTFS 备用流
-so : 向标准输出写数据
-spd : 禁用文件名的通配符匹配
-spe : 消除提取命令中根文件夹的重复。
-spf[2] : 使用完全合格的文件路径
-ssc[-] : 设置敏感的大小写模式
-sse : 如果无法打开某些输入文件,则停止创建压缩包
-ssp : 压缩包时不更改源文件的最后访问时间
-ssw : 压缩共享文件
-stl : 从最近修改的文件设置压缩包时间戳
-stm{HexMask} : 设置 CPU 线程亲和力掩码(十六进制数字)。
-stx{Type} : 排除压缩包类型
-t{Type} : 设置压缩包的类型
-u[-][p#][q#][r#][x#][y#][z#] [!newArchiveName] : 更新选项
-v{Size}[b|k|m|g] : 创建卷
-w[{path}] : 指定工作目录。空的路径意味着一个临时目录
-x[r[-|0]]{@listfile|!wildcard} : 排除文件名。
-y : 假设所有的查询都是肯定的
```
## 官网
更多安装使用方法可以访问官网学习:[https://www.7-zip.org/](https://www.7-zip.org/)
或者可以访问简体中文网站:[https://sparanoid.com/lab/7z/](https://sparanoid.com/lab/7z/)