Какое программное обеспечение сжатия файлов для Linux предлагает наибольшее сокращение размера? [закрыто]

51

Я делаю тонну сжатия файлов. Большинство вещей, которые я сжимаю, это просто код, поэтому мне нужно использовать сжатие без потерь. Мне было интересно, есть ли что-нибудь, что предлагает лучшее уменьшение размера, чем 7zip. Неважно, сколько времени требуется, чтобы сжать или разархивировать размер - это все, что имеет значение. Кто-нибудь знает такое программное обеспечение в Linux? Или 7zip лучший?

Zach
источник

Ответы:

37

7zipявляется более компактным (как PKZIP), чем компрессор. Он доступен для Linux, но он может создавать сжатые архивы только в обычных файлах, например, он не может сжимать поток. Он не может хранить большинство атрибутов файлов Unix, таких как владение, ACL, расширенные атрибуты, жесткие ссылки ...

В Linux, как компрессор , у вас есть , xzчто использует тот же алгоритм сжатия , как 7zip(LZMA2). Вы можете использовать его для сжатия архивов tar.

Как для gzipи bzip2, есть параллельный вариант , pixzкоторый может использовать несколько процессоров для ускорения сжатия ( xzтакже может сделать это изначально , начиная с версии 5.2.0 с -Tопцией). pixzВариант также поддерживает индексирование сжатого tarархива , который означает , что он способен извлечь один файл без необходимости распаковывать файл с самого начала.

Стефан Шазелас
источник
6
Можете ли вы расширить различие между «компактором» и «компрессором», которое вы здесь делаете?
Матдм
2
@mattdm, компрессор только сжимает, компактор сжимает несколько вещей в сжатый архив.
Стефан Шазелас
2
@mattdm, странно. Это была очень распространенная терминология и различие в 90-х годах, похоже, из поиска в Google, это уже не так.
Стефан Шазелас
6
Может быть, это была вещь для DOS? В Unix обычно делается различие между сжатием и архивированием (как вы также говорите), но я никогда не слышал «компактор».
Mattdm
1
@mattdm, хорошо, compact это архив + сжатие (возможно, с индексированием, возможно, члены сжимаются отдельно), архивирование не подразумевает сжатие. Это не вещь для DOS, но, возможно, это была французская вещь. Погугляя архивы usenet, я, кажется, сталкиваюсь только со своими статьями, так что это вполне могло быть моим изобретением, хотя я твердо верю, что это не так.
Стефан Шазелас
65

lrzip - это то, что вы действительно ищете, особенно если вы сжимаете исходный код!

Цитирую README:

Это программа сжатия, оптимизированная для больших файлов. Чем больше размер файла и чем больше у вас памяти, тем лучше это преимущество сжатия, особенно если размер файлов превышает 100 МБ. Преимущество может быть выбрано либо размером (намного меньше, чем bzip2), либо скоростью (намного быстрее, чем bzip2). [...] Уникальная особенность lrzip заключается в том, что он всегда старается максимально использовать доступную оперативную память в вашей системе для максимальной выгоды.

lrzip сначала сканирует и удаляет любые избыточные данные на больших расстояниях с помощью алгоритма на основе rzip, а затем сжимает не избыточные данные.

Кон Коливас приводит фантастический пример в списке рассылки ядра Linux ; при этом он сжимает архив размером 10,3 ГБ из сорока версий Linux Kernel до 163,9 МБ (1,6%) и делает это быстрее, чем xz. Он даже не использовал самый агрессивный алгоритм второго прохода!

Я уверен, что вы получите отличные результаты, сжимая огромные архивы исходного кода :)

sudo apt-get install lrzip

Пример (используется по умолчанию для других параметров):

Ультра компрессия, собака медленная:

lrzip -z file

Для папок просто поменяйте lrzipнаlrztar

Александр Риччио
источник
1
Я также могу поспорить, что это lrzipтакже отлично работает для резервных копий tar/cpio/paxфайлов системных файлов ed, потому что они обычно содержат много избыточных данных на большие расстояния, что lrzipдействительно хорошо при сжатии.
Франки
10
Я пробовал lrzipи pixzна 19 ГБ текстовый файл. На сжатие lrzфайла понадобилось около получаса (на машине с шестнадцатеричным ядром), но размер файла составлял половину его размера xz(2,7 против 4,4 ГБ). Итак, вместо этого еще один голос.
фн
3
@Franki под словом «конкурс», ты имеешь в виду «засвидетельствовать»?
Митч
По ощущениям пегая пайпер!
Денис Виталий
1
Вы знаете, в чем разница между lrzip и rzip? Похоже, что rzip был выпущен в 1998 году и предназначен для работы с очень большими файлами с избыточностью на большие расстояния, поэтому он звучит похоже на lrzip - просто интересно, был ли lrzip получен из rzip? (rzip от rzip.samba.org )
Астара
6

Если вы ищете наибольшее уменьшение размера независимо от скорости сжатия, LZMAвероятно, ваш лучший вариант.

При сравнении различных компрессий обычно компромисс между временем и размером. gzipимеет тенденцию к сжатию и распаковке относительно быстро, в то же время обеспечивая хорошую степень сжатия. bzip2несколько медленнее, чем время gzipсжатия и декомпрессии, но дает еще большие коэффициенты сжатия. LZMAимеет наибольшее время сжатия, но дает лучшие соотношения, а также имеет коэффициент декомпрессии, превосходящий bzip2.

Источники: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html

j883376
источник
1
Мне нужно не согласиться с этим! Компрессор файлов без потерь, обеспечивающий наибольший коэффициент уменьшения, независимо от скорости сжатия, которая работает в GNU / Linux, вероятно, либо либо, zpaqлибо paq8l. Тем не менее, они настолько медленные, что они не практичны для большинства реальных применений.
Франки
@ Франки круто sudo apt-get install zpaq, я сделал несколько тестов, согласно вики , это приложение было бы самым новым 2009, но оно все еще проигрывает в килобайтах (который использует PAQ6), но килограмм НАМНОГО медленнее ...
Aquarius Power
@ Фрэнки на самом деле, я только что обнаружил, что zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarсжимает больше, чемkgb -9
Водолей Power
4

(обновленный ответ) Если время не имеет значения, используйте ZPAQ v1.10 (или новее), например:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (расположение файла max.cfg может отличаться, проверьте список установленных файлов пакетов)

zpaqна самом деле сжато больше, чем kgb -9 newFileName.kgb yourFileName.tar.
Это основано на более старом алгоритме PAQ6 и очень медленное ...
Я тестировал со всеми другими компрессорами, такими как 7zip, lrzip, bzip2, kgb .. и zpaq сжимались чаще всего!

Если kgbвас все еще интересует: (поскольку это был мой первоначальный выбор в отношении этого ответа, поэтому я сохраняю информацию здесь)
Ubuntu 14.04 имеет kgb 1.0b4 , запустите его sudo apt-get install kgbдля установки.

Ниже речь идет о версии Windows, которую вы можете попробовать запустить / скомпилировать kgbв Linux, но у меня ничего не получилось.
Бета-версию 2 можно найти на SourceForge , но нет доступных бинарных файлов для Linux. Вы можете попробовать запустить его в консоли с помощью wine kgb2_console.exe -a7 -m9(метод, -a6 -m9кажется, эквивалентен лучшему методу в 1.0b4, -a7является новым в 2 beta2). Хотя у меня была лучшая стабильность благодаря установке .NET 2.0 с winetricks и запуском wine "KGB Archiver 2 .net.exe"(мне не нравится это делать, поэтому я остановлюсь на родном Linux 1.0b4, который дает почти такой же результат, как 2 beta2).
В любом случае, бета-версия 2 также заслуживает родной версии Linux! Может быть, что-то можно сделать с помощью MinGW, посмотрите на это , но эта команда по-прежнему плохо работает:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb, Может быть, попытаться скомпилировать его dmcs(моно)? увидеть этот совет .

Водолей Сила
источник
2

7zip не уникальная технология, но поддерживает несколько различных методов сжатия (см. Википедию 7z).

Набор тестов был проведен с различными инструментами , специально для исходных файлов C. Я не уверен, какие инструменты существуют для Linux, если они все еще существуют. Однако, вы можете заметить, что лучшим алгоритмом был PPM с модификациями (PPMII, затем PPMZ).

Если вы заинтересованы в инструментах, вы можете просматривать сайт, он на русском языке, но Google Translate может помочь. Существует большой депозит двоичных файлов , которые вы можете использовать (или не сможете) из Linux с Wine, если это действительно необходимо.

Ярослав Никитенко
источник