La herramienta de línea de comandos 7z le permite especificar múltiples métodos de compresión , por ejemplo:
# 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
Todos los métodos se utilizan de alguna manera, o al menos se especifican en los metadatos:
$ 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
No , no aparece para ejecutar el archivo a través de los tres métodos, escoger el mejor. Por el contrario, aparentemente siempre elige el primero, ya que cambiar el orden del método afecta significativamente el tamaño del archivo.
Incluso si agrego varios archivos, como un archivo XML (PPMd produce la mejor compresión) y un archivo binario (LZMA2 sí), todavía enumera todos los métodos para ambos archivos, y no parece cambiar dinámicamente por archivo.
De hecho, la documentación dice específicamente que "puede usar cualquier número de métodos", pero no dice por qué .
Lo que estoy tratando de lograr es un archivo por archivo "pruebe varios métodos, elija el que sea mejor". Por supuesto, puedo lograr esto manualmente con un poco de secuencia de comandos, pero presumiblemente, encadenar los métodos de compresión debería hacer exactamente eso.