7zip
7zip最新一代打包压缩工具,他提供了新的.7z
格式具有更高的压缩比,还支持打包压缩成 xz bz2 gz tar zip
等格式。
历史
最初 7zip 官方是只发布 Windows 版本的,不过开源社区提供了p7zip这个移植版本,最初他只能支持对 7z、lzma、xz 的压缩和解压缩,后来又发布了p7zip-full这个完全移植版本。
这种情况在 2022 年被打破,7zip 官方提供了7zip包来提供对 Linux 的支持。
7zip 能够压缩 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM 以及解压 APFS, AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z。这几乎涵盖了市面上所有主流的压缩包。
Note
7zip 和 p7zip 的命令形式是完全一样的,不同点在于后者出现的早命令占用了 7z 命令,而前者通常被设置为 7zz 命令。
基本使用
7zip 首先需要指定 command,可用的命令有 11 种:
- a(add): 添加文件到归档
- b(benchmark): 基准测试
- d(delete): 从归档中删除文件
- e(extract): 从归档中提取文件(如果是提取全部需要谨慎使用他会展平所有嵌套的路径文件到当前文件夹下,推荐使用 x 命令),他最大的用处是提取部分文件
- h(hash): 计算归档的哈希值
- i(information): 打印支持的格式信息
- l(list): 列出归档中文件的内容
- rn(rename): 修改归档中文件的名字
- u(update): 更新归档中的文件
- x(Extract): 从归档中提取文件(保留归档中的文件夹和文件相对位置)
- t(test): 测试归档的完整性
之后的 switches 代表选项,常用值如下:
-o{directory}
: 指定输出目录-p{password}
: 指定密码-sdel
: 压缩后删除源文件-si -so
: 从 stdin 获取信息,输出到 stdout-t{type}
: 要归档到的文件类型,可以指定 zip、tar、7z。默认情况下会自动根据后缀名匹配归档和压缩类型-mx=[1-9]
: 压缩率-mmt={size}
: 多线程,推荐 CUP*1.5
Tips
-o
之后不能有空格必须直接指定参数值
分卷压缩解压
对于压缩文件来说:
Bash
# -v{size}{b|k|m|g} 每个分卷的大小
# 之后会生成 存档.7z.01 存档.7z.02 .... 这样的文件
7z a -v500m -mx9 "存档.7z" "待压缩文件"
对于解压缩,直接解压缩第一个会自动帮助拼接: