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
для выбора формата архива, но обычно это не требуется, поскольку инструмент выбирает формат из имени файла.