7z «ультра» настройки для формата zip

14

7z «Ультра» настройки для формата .7z :

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on

Каковы "ультра" настройки для формата .zip (используя 7z)?

ᴜsᴇʀ
источник

Ответы:

17

Значения по умолчанию для файла-ролика приложения GUI также могут быть изменены:


Имейте в виду, что «ultra» может быть не очень эффективным, и его сжатие займет больше времени, не приводя к значительным различиям в конечном размере файла по сравнению с настройками по умолчанию, а также может привести к несовместимости с другими программами.

Так должно быть:

7z a -tzip -mx=9

Согласно: file: ///usr/share/doc/p7zip-full/DOCS/MANUAL/switches/method.htm

Это ссылка на вашу файловую систему, просто поместите ее в адресную строку браузера.

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

застежка-молния

Parameter                     Default     Description
x=[0 | 1 | 3 | 5 | 7 | 9 ]    5           Sets level of compression.
m={MethodID}                  Deflate     Sets a method: Copy, Deflate, Deflate64, BZip2, LZMA, PPMd.
fb={NumFastBytes}             32          Sets number of Fast Bytes for Deflate encoder.
pass={NumPasses}              1           Sets number of Passes for Deflate encoder.
d={Size}[b|k|m]               900000      Sets Dictionary size for BZip2
mem={Size}[b|k|m]             24          Sets size of used memory for PPMd.
o={Size}                      8           Sets model order for PPMd.
mt=[off | on | {N}]           on          Sets multithreading mode.
em={EncryptionMethodID}       ZipCrypto   Sets a encryption method: ZipCrypto, AES128, AES192, AES256
tc=[off | on]                 off         Stores NTFS timestamps for files: Modification time, Creation time, Last access time.
cl=[off | on]                 off         7-Zip always uses local code page for file names.
cu=[off | on]                 off         7-Zip uses UTF-8 for file names that contain non-ASCII symbols.

По умолчанию (если переключатели cl и cu не указаны), 7-Zip использует кодировку UTF-8 только для имен файлов, которые содержат символы, не поддерживаемые локальной кодовой страницей.

х = [0 | 1 | 3 | 5 | 7 | 9]

Устанавливает уровень сжатия. x = 0 означает режим копирования (без сжатия).

Настройки Deflate / Deflate64:

Level NumFastBytes    NumPasses   Description
1     32              1           Fastest
3                                 Fast
5                                 Normal
7     64              3           Maximum
9     128             10          Ultra

x = 1 и x = 3 с методом Deflate установить быстрый режим для сжатия.

Настройки BZip2:

Level Dictionary  NumPasses   Description
1     100000      1           Fastest
3     500000                  Fast
5     900000                  Normal
7                 2           Maximum
9                 7           Ultra

FB = {NumFastBytes}

Устанавливает количество быстрых байтов для кодера Deflate / Deflate64. Может быть в диапазоне от 3 до 258 (257 для Deflate64). Обычно большое число дает немного лучшую степень сжатия и более медленный процесс сжатия. Большой параметр быстрых байтов может значительно увеличить степень сжатия для файлов, которые содержат длинные идентичные последовательности байтов.

проходят = {NumPasses}

Устанавливает количество проходов для датчика Deflate. Может быть в диапазоне от 1 до 15 для Deflate и от 1 до 10 для BZip2. Обычно большое число дает немного лучшую степень сжатия и более медленный процесс сжатия.

д = {Размер} [Ь | к | м]

Устанавливает размер словаря для BZip2. Вы должны указать размер в байтах, килобайтах или мегабайтах. Максимальное значение для размера словаря составляет 900000b. Если вы не укажете какой-либо символ из набора [b | k | m], размер словаря будет рассчитываться как DictionarySize = 2 ^ Размер байтов.

MEM = {Размер} [Ь | к | м]

Устанавливает размер памяти, используемой для PPMd. Вы должны указать размер в байтах, килобайтах или мегабайтах. Максимальное значение составляет 256 МБ = 2 ^ 28 байт. Значение по умолчанию - 24 (16 МБ). Если вы не укажете какой-либо символ из набора [b | k | m], объем памяти будет рассчитан как (2 ^ размер) байта. PPMd использует одинаковый объем памяти для сжатия и распаковки.

о = {Размер}

Устанавливает порядок модели для PPMd. Размер должен быть в диапазоне [2,16]. Значением по умолчанию является 8.

mt = [off | на | {N}]

Устанавливает многопоточный режим. Если у вас многопроцессорная или многоядерная система, вы можете увеличить скорость с помощью этого переключателя. Эта опция влияет только на сжатие (любым методом) и распаковку потоков BZip2. Каждый поток в многопоточном режиме использует 32 МБ ОЗУ для буферизации. Если вы укажете {N}, 7-Zip попытается использовать N потоков.

LiveWireBT
источник
Это возвращается System error: E_INVALIDARG. Если удалить m0=Deflateэто работает 7z a -tzip -mx=9 -mfb=128 -mpass=10. Почему ты выбрал -mfb=128и -mpass=10? Спасибо.
ᴇʀsᴇʀ
@user Вы запросили ультра-настройки, и согласно таблице это ультра-настройки для deflate, стандартное сжатие в формате zip. Вы должны посмотреть на оригинальный файл, форматирование здесь ограничено и не может обрабатывать таблицы, насколько я знаю.
LiveWireBT
Я не объяснил хорошо. [1] С опцией m0=Deflateона не работает, и она возвращается System error: E_INVALIDARG. Если я уберу эту опцию (то есть 7z a -tzip -mx=9 -mfb=128 -mpass=10она работает) [2] Что касается второго вопроса («почему вы выбрали -mfb=128и -mpass=10»), то теперь я понимаю, что посмотрел таблицы.
ᴇʀsᴇʀ
1
@user -mx=9эквивалентен -mfb=128 -mpass=10, я понял это после перечитывания моего поста. Я не знаю, почему m0=Deflateне работает. Я думаю, что столкнулся с этой проблемой много лет назад на Windows и никогда не решал ее. Это может быть ошибкой документации или просто устаревшим значением, которое -tzipподдерживает только один метод для совместимости. Я не знаю, можно было подать ошибку или прочитать исходный код, чтобы узнать, какие опции на самом деле поддерживаются.
LiveWireBT
1
Я думаю, что причина, по которой ваш m0=Deflateвариант не сработал, в том, что у вас неверный синтаксис. Думаю, так и должно быть -mm=Deflate, нет -m0=Deflate. Это синтаксис в Windows в любом случае, и синтаксис в соответствии с тем, что LiveWireBT опубликовал выше. (Спасибо за это LiveWireBt, кстати).
Дэвид И. Макинтош,