Как установить уровень сжатия 7z с помощью графического интерфейса в Ubuntu? - proUbuntu
14 голосов
/ 17 декабря 2014

Менеджер архивов, или file-roller, похоже, не имеет возможности установить уровень сжатия для 7z файлов.

enter image description here

Однако клиент Windows 7-zip может сделать это с помощью графического интерфейса -

enter image description here

В Ubuntu / Linux уровень сжатия можно установить в командной строке (CLI) с помощью флага -m. Подробнее см. этот ответ .

Существуют ли какие-либо условия для установки уровня сжатия для архивов 7z с использованием графического интерфейса в Ubuntu?

1 Ответ

16 голосов
/ 18 декабря 2014

Моя идея заключалась в том, чтобы найти какую-то подсказку в списке файлов пакетов или в gconf, но мне не повезло. Кто-то еще знал ответ, хотя.

Superuser: Изменить уровни сжатия по умолчанию для файлового ролика?

Или:

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

Или:

$ dconf-editor
  1. Выберите org в левой панели.
  2. Выберите gnome в левой панели.
  3. Выберите file-roller в левой панели.
  4. Выберите general в левой панели.
  5. Выберите compression-level в правой панели.
  6. Установите compression-level на 'maximum'.

К сожалению, вы не можете точно настроить этот параметр для разных программы сжатия. Если вы хотите всю свободу, вы можете использовать свой вместо раковины.

Изображение dconf Editor с уровнем сжатия файлового ролика, установленным в максимум. .

В этом ответе ранее не было никаких голосов, поэтому я проверил, имеет ли это какой-либо эффект, и решил сжать некоторые документы с настройками по умолчанию и с максимальными настройками (тип 7z). Результат: улучшение 2,3 КБ для архива ~ 300 КБ.

Внимание:

  • В зависимости от содержимого это может оказать негативное влияние на сжатие всего с помощью LZMA / LZMA2 на максимальном уровне. Например, PNG уже сжаты с помощью Deflate и не сильно выиграют от сжатия. Было бы разумнее оптимизировать их с помощью PNGOUT / OptiPNG, Zopfli , а затем заархивировать их с помощью LZ4 , достигнув более быстрой распаковки архива и уменьшив размер файла.

Я попытался узнать больше через man-страницу file-rollers и руководство пользователя , но все же не повезло. Затем я скачал исходный пакет и искал «максимум» в fr-command-7z.c (обратите внимание, как я избегаю говорить, что я прочитал источник), что дало мне следующее:

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;
}

Это насколько я могу в данный момент получить, похоже, что ультра настройки нет.

...