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
3つすべての方法でファイルを実行しているようではなく、最適な方法を選択しています。むしろ、メソッドの順序を変更するとファイルサイズに大きく影響するため、常に常に最初のものが選択されます。
1つのXMLファイル(PPMdが最高の圧縮をもたらす)や1つのバイナリファイル(LZMA2が行う)などの複数のファイルを追加した場合でも、両方のファイルのすべてのメソッドがリストされ、ファイルごとに動的に切り替わるようには見えません。
実際、ドキュメントには「メソッドはいくつでも使用できる」と明記されていますが、その理由は記載されていません。
私が達成しようとしているのは、ファイルごとの「複数の方法を試して、どちらがベストかを選ぶ」アーカイブです。もちろん、小さなスクリプトを使用して手動でこれを実現できますが、おそらく、圧縮方法をチェーンすることで正確に実行できますか?