Skip to content

Commit 53bc354

Browse files
authored
doc: add 7z commands (#1018)
* doc: add 7zip * doc: update docs/7zip.md
1 parent 4b4f361 commit 53bc354

File tree

2 files changed

+184
-0
lines changed

2 files changed

+184
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ Quick Reference
286286
[Tmux](./docs/tmux.md)<!--rehype:style=background:rgb(99 99 99);-->
287287
[Taskset](./docs/taskset.md)<!--rehype:style=background:rgb(99 99 99);-->
288288
[tar](./docs/tar.md)<!--rehype:style=background:rgb(215 89 62);&class=tag&data-lang=解压缩-->
289+
[7zip](./docs/7zip.md)<!--rehype:style=background:rgb(99 99 99);&class=tag&data-lang=解压缩-->
289290
[Yazi](./docs/yazi.md)<!--rehype:style=background:rgb(255 165 0);&class=tag&data-lang=文件管理器;&class=contributing-->
290291
[Zip](./docs/zip.md)<!--rehype:style=background:rgb(99 99 99);&class=tag&data-lang=解压缩-->
291292
<!--rehype:class=home-card-->

docs/7zip.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
7zip 备忘清单
2+
====
3+
4+
7z(7-Zip / p7zip)命令用于创建、更新、查看与解压压缩包,常见格式包括 `7z``zip``tar` 等。
5+
6+
入门
7+
----
8+
9+
### 7z 用法
10+
11+
```shell
12+
$ 7z <命令> [<开关>..] <压缩包名称> [<文件名>..]
13+
```
14+
<!--rehype:className=wrap-text-->
15+
16+
常见命令:
17+
18+
- `a` 添加文件到压缩包(创建/追加)
19+
- `x` 解压(保留完整路径)
20+
- `e` 解压(不保留目录结构)
21+
- `l` 列出压缩包内容
22+
- `t` 测试压缩包完整性
23+
24+
安装:
25+
26+
```shell
27+
# Debian/Ubuntu
28+
$ sudo apt install p7zip-full
29+
30+
# RHEL/CentOS/Fedora
31+
$ sudo yum install p7zip p7zip-plugins
32+
33+
# macOS (Homebrew)
34+
$ brew install sevenzip
35+
```
36+
37+
### 命令
38+
<!--rehype:wrap-class=col-span-2-->
39+
40+
参数 | 描述 | 参数 | 描述
41+
:--- | :--- | :--- | :---
42+
`a` | **add:** 添加/创建压缩包 | `x` | **extract:** 解压(保留完整路径)
43+
`e` | **extract:** 解压(不保留目录名) | `l` | **list:** 列出压缩包内容
44+
`t` | **test:** 测试压缩包完整性 | `h` | **hash:** 计算文件哈希
45+
`u` | **update:** 更新压缩包内文件 | `d` | **delete:** 从压缩包中删除文件
46+
`rn` | **rename:** 重命名压缩包内文件 | `i` | **info:** 查看支持的格式信息
47+
`b` | **benchmark:** 性能测试 | &nbsp; | &nbsp;
48+
49+
### 语法形式和选项
50+
51+
:- | :-
52+
:- | :-
53+
**基本语法** | `7z <命令> [开关...] 压缩包 [文件...]`
54+
**创建 7z 压缩包** | `7z a -t7z archive.7z 文件/目录...`
55+
**创建 zip 压缩包** | `7z a -tzip archive.zip 文件/目录...`
56+
**解压(保留路径)** | `7z x archive.7z -o输出目录`
57+
**解压(不保留目录)** | `7z e archive.7z -o输出目录`
58+
**列出内容** | `7z l archive.7z`
59+
**测试完整性** | `7z t archive.7z`
60+
**计算哈希** | `7z h -scrcSHA256 文件...`
61+
**创建分卷压缩包** | `7z a archive.7z 大文件.iso -v1g`
62+
<!--rehype:className=style-list-arrow-->
63+
64+
### 常用开关示例
65+
<!--rehype:wrap-class=col-span-2 row-span-1-->
66+
67+
参数 | 描述 | 参数 | 描述
68+
:--- | :--- | :--- | :---
69+
`--` | 停止解析后续参数为开关 | `-t{Type}` | 指定压缩格式(如 `-t7z` / `-tzip`),默认为`7z`
70+
`-o{目录}` | 指定输出目录(解压) | `-p{密码}` | 设置密码
71+
`-r[-\|0]` | 递归子目录(`-r` / `-r-` / `-r0`) | `-mx[N]` | 压缩等级:`-mx0`(不压缩) `-mx1`(最快)… `-mx9`(最强)
72+
`-mmt[N]` | 线程数(如 `-mmt4`) | `-y` | 所有询问默认回答 Yes
73+
`-ao{a\|s\|t\|u}` | 覆盖策略:a 全覆盖 / s 跳过 / t 仅覆盖旧文件 / u 自动重命名 | &nbsp; | &nbsp;
74+
`-v{Size}[b\|k\|m\|g]` | 分卷(如 `-v1g` / `-v500m`) | `-sdel` | 压缩后删除源文件
75+
`-sfx[{name}]` | 生成自解压压缩包(SFX) | `-bd` | 关闭进度指示器
76+
`-bb[0-3]` | 输出日志等级 | `-bt` | 输出执行时间统计
77+
`-so` | 输出到 stdout | `-si[{name}]` | 从 stdin 读入数据
78+
`-scrc[CRC64\|SHA1\|SHA256\|*]` | 指定校验/哈希算法(用于 `x/e/h`) | `@listfile` | 从列表文件读取文件名
79+
`-i...` | 仅包含匹配项(include) | `-x...` | 排除匹配项(exclude)
80+
`-slt` | `l` 命令输出技术信息 | `-spf` | 使用绝对路径
81+
82+
7z 压缩示例
83+
--------
84+
85+
### 创建新的 7z 压缩包
86+
87+
```shell
88+
$ 7z a -t7z archive.7z file1 file2 dir1/
89+
```
90+
91+
### 创建分卷压缩包
92+
93+
```shell
94+
$ 7z a big.7z big.iso -v1g
95+
```
96+
97+
压缩时会自动根据文件名后缀判断压缩格式,所以可以忽略 `-t` 开关
98+
99+
### 设置压缩等级与线程数
100+
101+
```shell
102+
$ 7z a archive.7z dir1/ -mx9 -mmt4
103+
```
104+
105+
### 排除目录或文件
106+
<!--rehype:wrap-class=col-span-2-->
107+
108+
```shell
109+
$ 7z a archive.7z example/ '-x!example/node_modules/*' '-x!example/dist/*'
110+
```
111+
<!--rehype:className=wrap-text-->
112+
113+
### 从列表文件读取待压缩文件
114+
115+
```shell
116+
$ 7z a archive.7z @files.txt
117+
```
118+
119+
`files.txt` 每行一个文件路径(相对或绝对路径均可)。
120+
121+
### 压缩后删除源文件
122+
123+
```shell
124+
$ 7z a archive.7z dir1/ -sdel
125+
```
126+
127+
7z 解压示例
128+
--------
129+
130+
### 解压并保留目录结构(推荐)
131+
132+
```shell
133+
$ 7z x archive.7z
134+
```
135+
136+
### 解压到指定目录
137+
138+
```shell
139+
$ 7z x archive.7z -o./output
140+
```
141+
142+
### 解压但不保留目录结构
143+
144+
```shell
145+
$ 7z e archive.7z -o./output
146+
```
147+
148+
### 解压时覆盖策略
149+
150+
```shell
151+
$ 7z x archive.7z -o./output -aoa
152+
```
153+
154+
### 仅解压匹配的文件
155+
156+
```shell
157+
$ 7z x archive.7z '*.log' -o./output
158+
```
159+
160+
### 列出压缩包内容(含技术信息)
161+
162+
```shell
163+
$ 7z l archive.7z -slt
164+
```
165+
166+
### 测试压缩包完整性
167+
168+
```shell
169+
$ 7z t archive.7z
170+
```
171+
172+
### 计算文件哈希(SHA256)
173+
174+
```shell
175+
$ 7z h -scrcSHA256 file1 file2
176+
```
177+
178+
另见
179+
----
180+
181+
- [7-Zip 官网](https://www.7-zip.org/) _(7-zip.org)_
182+
- [7-Zip 简体中文网站](https://sparanoid.com/lab/7z/) _(7-zip.org)_
183+
- [7z 命令帮助文档](https://jaywcjlove.github.io/linux-command/c/7z.html) _(linux-command)_

0 commit comments

Comments
 (0)