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.
fuente
Respuestas:
En general, los datos comprimidos no se pueden comprimir (más) de manera eficiente. Después de que se haya aplicado el primer método de compresión, el tamaño del archivo no se puede disminuir significativamente.
El
-mN=X
es principalmente para el establecimiento de filtros (tomado de archivo de ayuda de Windows):También del archivo de ayuda, un ejemplo avanzado que aprovecha múltiples flujos de salida del filtro BCJ2:
fuente
Parece que puedes aplicar filtros en una secuencia.
Esta publicación del año pasado tiene una buena explicación:
¿Qué significa el número después del interruptor 7-zip's -m?
fuente