7z命令行工具可让您指定多种压缩方法,例如:
# 7-zip archive type, strongest (9) compression, methods PPMd, BCJ2, LZMA2
$ 7z a -t7z -mx=9 -m0=PPMd -m1=BCJ2 -m2=LZMA2 myarchive.7z somefile.xml
所有方法都以某种方式使用,或者至少在元数据中指定:
$ 7z l -slt myarchive.7z
7-Zip [64] 9.22 beta Copyright (c) 1999-2011 Igor Pavlov 2011-04-18
Listing archive: myarchive.
7z
--
Path = myarchive.7z
Type = 7z
Method = LZMA2 PPMD BCJ2
[..]
----------
Path = somefile.xml
[..]
Method = PPMD:o32:mem192m BCJ2 LZMA2:48m
Block = 0
它似乎并没有通过所有三种方法来运行文件,而是选择了最好的方法。相反,它显然总是选择第一个,因为更改方法的顺序会显着影响文件大小。
即使我添加了多个文件,例如一个XML文件(PPMd产生最佳压缩)和一个二进制文件(LZMA2做到了),它仍然列出了这两个文件的所有方法,并且似乎没有针对每个文件动态切换。
事实上,文件明确指出:“你可以用任何数量的方法。”,但它没有说何故。
我要实现的是每个文件的“尝试多种方法,选择最佳方法”存档。我当然可以通过一些脚本来手动实现这一点,但是大概,链接压缩方法应该可以做到这一点?