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/dir2，dir1/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 : 显示l（List）命令的技术信息
  -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/)
