|
| 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:** 性能测试 | | |
| 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 自动重命名 | | |
| 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