7-zip 有一个命令行开关设置压缩方法,-m
后跟数字,例如
-m0=LZMA
。
0
示例中的数字 () 表示什么意思?不同的数字会产生略微不同的压缩结果和性能:
Parameters Wall User System
-m0=LZMA -mx=9 -ms=on -mmt=off 28.4 27.48 0.85
-m1=LZMA -mx=9 -ms=on -mmt=off 27.45 33.06 0.90
-m0=LZMA -mx=9 -ms=on -mmt=on 12.74 24.39 1.14
-m1=LZMA -mx=9 -ms=on -mmt=on 15.08 33.14 1.28
-m0=LZMA -mx=9 -ms=on -mmt=off 26.5 25.58 0.65
-m1=LZMA -mx=9 -ms=on -mmt=off 27.07 32.84 0.87
-m0=LZMA -mx=9 -ms=on -mmt=on 13.27 24.99 1.00
-m1=LZMA -mx=9 -ms=on -mmt=on 15.32 33.28 1.47
答案1
如果您同时使用多个压缩操作,则该数字可让您设置压缩操作的顺序。
这是来自文档的一个例子:
7z a a.7z *.exe *.dll \
-m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 \
-mb0:1 -mb0s1:2 -mb0s2:3
使用 BCJ2 过滤器将 *.exe 和 *.dll 文件添加到档案 a.7z,主输出流 (s0) 使用带有 32 MB 字典的 LZMA,BCJ2 的 s1 和 s2 输出流使用带有 512 KB 字典的 LZMA。
第一个压缩是最低的数字,即零。在此示例中,零设置为 BCJ2。接下来是一,即 LZMA。二和三也是 LZMA,但它们使用的d
参数不同。
该-mb
选项用于将一种压缩的输出“绑定”到另一种压缩的输入。在此示例中,BCJ2 有一个输入和四个输出。输出零将发送到压缩一。输出一将发送到压缩二。输出二将发送到压缩三。输出三未绑定(因为它不需要再次压缩)。
在您的示例中,它们仅使用一个压缩操作,因此您为其分配哪个数字并不重要。