Может ли p7zip создавать zip-файлы меньшего размера, чем winzip?

Может ли p7zip создавать zip-файлы меньшего размера, чем winzip?

7-Zip для Windows создает меньшие zip-архивы, чем WinZip, поэтому, предположительно, P7zip может создавать меньшие zip-архивы, чем Zip в Linux. Так как же мне создать zip-файлы с помощью P7zip в Linux?

решение1

Экспериментально 7zсжимает немного лучше, чем zip. Не знаю, как он в сравнении с Winzip.

$ zip -q zip.zip /bin/{bash,cp,ls}
$ zip -q -9 zip9.zip /bin/{bash,cp,ls}
$ 7z a 7z.zip /bin/{bash,cp,ls} >/dev/null
$ 7z -mx=9 a 7z9.zip /bin/{bash,cp,ls} >/dev/null
$ du -ab *.zip | sort -n
550617  7z9.zip
559890  7z.zip
576161  zip9.zip
578382  zip.zip

Числовой параметр ( -9для zip, -mx=9для 7z) сообщает инструменту, что необходимо затратить больше времени для достижения лучшей степени сжатия (это шкала от 0 до 9).

Вы получите лучшее сжатие, используя формат 7z вместо формата zip. Недостатком является то, что для распаковки вам понадобится P7zip, Winzip с этим не справится.

$ 7z -mx=9 a 7z9.7z /bin/{bash,cp,ls} >/dev/null 
$ 7z a 7z.7z /bin/{bash,cp,ls} >/dev/null 
$ du -ab *.7z | sort -n
471964  7z9.7z
472415  7z.7z

Установите P7zip из пакетов вашего дистрибутива; если у вас какой-то странно неполный дистрибутив, который не включает его, скачайте его свверх по течению. Существует три исполняемых файла (иногда упаковываются отдельно): 7zrобрабатывает только архивы 7z, 7zобрабатывает множество распространенных форматов архивов (включая zip) и 7zaподдерживает дополнительные плагины (полезные для rar, который требует несвободного кода, который не связан с самим 7z). Вы можете использовать опцию -mдля выбора формата архива, но обычно это не требуется, поскольку инструмент выбирает формат из имени файла.

Связанный контент