7zip 超级LZMA2压缩

46

我该如何将这些设置转换为命令?

enter image description here

以下是结果:

// Manual Compression (see the image above)
Compressed Size: 12,647,451 bytes

// Ultra
7z a -t7z Files.7z -mx9 -aoa
Compressed Size: 12,676,886 bytes

// LZMA2
7z a -t7z Files.7z -m9=LZMA2 -aoa
Compressed Size: 14,237,515 bytes  

我在这里查找:
http://sevenzip.sourceforge.jp/chm/cmdline/switches/method.htm

我将要将它放在一个批处理文件中。


如果在开发或调试模式下运行,你可以将这些选项作为命令行参数收集吗? - Aquarius Power
-aoa是一种提取选项。它的意思是不要覆盖磁盘上已经存在的文件。当压缩文件到一个归档文件时,它会被忽略。 - Able Mac
5个回答

70

您的命令行至少应该包含:

7z a -t7z Files.7z -m0=lzma2 -mx=9 -aoa

请注意,使用1或2个线程而不是8个线程时,您将获得更好的压缩效果。因此,更接近于您的GUI设置(ms:实心,d:字典大小,mhe:加密标题(文件名),p:密码)。

7z a -t7z -m0=lzma2 -mx=9 -aoa -mfb=64 -md=32m -ms=on -d=1024m -mhe -pSECRET

10
我不确定在哪个7z版本上会出现错误-d=1024m,但是以下命令适用于Windows上的16.04版本: 7z.exe a -t7z -m0=lzma2:d1024m -mx=9 -aoa -mfb=64 -md=32m -ms=on。我还将-sdel选项附加到了将文件移动到归档文件的选项中。 - Jeroen Wiert Pluimers
1
使用1、2或3个线程压缩时,使用的内存量相同,这让我想到它们都共享同一个字典。根据我的测试,最多使用3个线程不会降低压缩效率。 - milivojeviCH
2
-aoa是一种提取选项。它的意思是不要覆盖磁盘上已经存在的文件。当压缩文件到一个归档文件时,它会被忽略。 - Able Mac
“-t7z” 的意义是什么? - Nilesh
@Nilesh:-t7z表示压缩文件类型为7z。 - tricasse

11

虽然很难得到完全相同的结果,但这是我迄今所能获得的最好结果:

7z a -t7z Files.7z -m0=BCJ2 -m1=LZMA2:d=1024m -aoa

它提供了更好的压缩吗? - Aquarius Power
与使用 GUI 相比,只会有不到 1MB 的差异。 - fiberOptics
顺便说一句,在我的测试中,这个简单的 7z a -t7z -mx9 的效果更好,但在我的情况下,文件太小,可能对你不适用... 无论如何,kgb -9 获胜了,但速度较慢...(哦顺便说一下,我使用的是Linux系统..) - Aquarius Power
我的服务器在运行这个程序时内存不足,只是提醒一下。 - Adam Fowler

8

对于使用Unix系统的人,我是这样实现的。

7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=1024m -ms=on destination.7z Source

我的来源:http://manpages.ubuntu.com/manpages/artful/man1/7z.1.html

这是一个关于7-Zip文件压缩程序的手册。7-Zip是一款开源软件,可用于创建和提取多种文件格式的归档文件。本手册包含了7-Zip的使用方法、参数选项和示例。


3
这个命令为我创建的输出与带有ui的ultra配置相同。我在文档示例中找到了它。从560MB缩小到29MB(二进制数据具有许多重复文件)。
7za.exe a output.7z ./input -mx

2

我想你正在寻找这样一种工具:

https://axelstudios.github.io/7z/#!/

在这个在线工具中,您可以设置您的选项,然后获得相应的命令行选项和参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接