¿Cómo establecer el nivel de compresión 7z usando la GUI en Ubuntu?

14

Archive Manager, o file-roller, no parece tener la opción de establecer el nivel de compresión para los 7zarchivos.

ingrese la descripción de la imagen aquí

Sin embargo, el cliente de Windows 7-zip tiene una opción para hacerlo mediante GUI:

ingrese la descripción de la imagen aquí

En Ubuntu / Linux, se puede establecer el nivel de compresión en la línea de comando (CLI) usando la -mbandera. Para más detalles, consulte esta respuesta .

¿Hay alguna disposición para configurar el nivel de compresión para 7zarchivos usando GUI en Ubuntu?

Rohith Madhavan
fuente
Hasta donde sé, usa el ultranivel, por defecto.
blade19899
@ blade19899 El nivel predeterminado es 5 (Normal)
Rohith Madhavan
Me educaste La única opción es usar la versión de línea de comandos. ¡Y envíe una solicitud de función! A lo mejor de mi conocimiento :)
blade19899
Creo que se trata del mismo algoritmo que normalmente usa xz, y los niveles de compresión más altos podrían requerir "varios gigabytes" de ram (eso dice man xz): no es como zip, donde especificar "max" todo el tiempo es la mejor idea.
Xen2050
Eso depende del tamaño de los archivos a archivar. Para fines prácticos, el requisito de RAM no es un gran problema.
Rohith Madhavan

Respuestas:

16

Mi idea era encontrar alguna pista en la lista de archivos de los paquetes o en gconf, pero no tuve suerte. Sin embargo, alguien más sabía la respuesta.

Superusuario: ¿ Cambiar los niveles de compresión predeterminados para el rodillo de archivos?

Ya sea:

$ dconf write /org/gnome/file-roller/general/compression-level "'maximum'"

O:

$ dconf-editor
  1. Seleccione orgen el panel izquierdo.
  2. Seleccione gnomeen el panel izquierdo.
  3. Seleccione file-rolleren el panel izquierdo.
  4. Seleccione generalen el panel izquierdo.
  5. Seleccione compression-levelen el panel de la derecha.
  6. Establecer compression-levela 'maximum'.

Desafortunadamente, no puede ajustar esta configuración para diferentes programas de compresión. Si quieres toda la libertad, puedes usar tu caparazón.

Imagen de dconf Editor con el nivel de compresión de file-roller establecido al máximo .

Esa respuesta anteriormente no tenía votos positivos, así que verifiqué si esto tiene algún efecto y elegí comprimir algunos documentos con la configuración predeterminada y con la configuración máxima (tipo 7z). Resultado: mejora de 2,3 KB en un archivo de ~ 300 KB.

Precaución:

  • Dependiendo del contenido, puede tener un impacto negativo comprimir todo con LZMA / LZMA2 en el nivel máximo. Los PNG, por ejemplo, ya están comprimidos con Deflate y no ganarán mucho con la compresión. Tendría más sentido optimizarlos con PNGOUT / OptiPNG, Zopfli y luego archivarlos con LZ4 , logrando una descompresión de archivo más rápida y reduciendo el tamaño del archivo.

Traté de obtener más información a través de la página de manual de los rodillos de archivo y el manual del usuario , aún no tuve suerte. Luego descargué el paquete fuente y busqué "máximo" en fr-command-7z.c(observe cómo evito decir que leí la fuente), lo que me dio lo siguiente:

switch (archive->compression) {
case FR_COMPRESSION_VERY_FAST:
    fr_process_add_arg (command->process, "-mx=1");
    break;
case FR_COMPRESSION_FAST:
    fr_process_add_arg (command->process, "-mx=5");
    break;
case FR_COMPRESSION_NORMAL:
    fr_process_add_arg (command->process, "-mx=7");
    break;
case FR_COMPRESSION_MAXIMUM:
    fr_process_add_arg (command->process, "-mx=9");
    if (! _g_mime_type_matches (archive->mime_type, "application/zip")
        && ! _g_mime_type_matches (archive->mime_type, "application/x-cbz"))
    {
        fr_process_add_arg (command->process, "-m0=lzma2");;
    }
    break;
}

Eso es todo lo que puedo llegar actualmente, parece que no hay una configuración ultra.

LiveWireBT
fuente
1
Aunque el método sugerido puede mejorar los niveles de compresión, requiere que el usuario cambie los valores en el editor dconf cada vez que se requiere un nivel diferente. ¿Hay algún método donde los niveles de compresión se seleccionen dinámicamente?
Rohith Madhavan
+1 por la respuesta. Aunque no resuelve exactamente el problema, proporciona una solución alternativa.
Rohith Madhavan
@RohithMadhavan Entiendo lo que quieres decir. Estoy tratando de no culpar a nadie aquí, pero creo que así es como deben funcionar las aplicaciones predeterminadas de Gnome: puede habilitar funciones ocultas pero no encontrará muchas casillas de verificación y menús desplegables.
LiveWireBT
Supongo que tienes razón. Puedo intentar presentar una solicitud de función, tal vez para incluirla en las opciones avanzadas. Gracias :-)
Rohith Madhavan