Яке програмне забезпечення для стиснення файлів для Linux пропонує найвище зменшення розміру? [зачинено]


51

Я роблю тонну компресію файлів. Більшість матеріалів, які я стискаю, - це лише код, тому мені потрібно використовувати втрати менше, ніж стиснення. Мені було цікаво, чи є щось, що пропонує краще зменшення розміру, ніж 7zip. Не має значення, скільки часу потрібно для стиснення або розпакування, розмір - це все, що має значення. Хтось знає про подібне програмне забезпечення в Linux? Або 7zip найкращий?

Відповіді:


37

7zip- це скоріше ущільнювач (як PKZIP), ніж компресор. Він доступний для Linux, але він може створювати лише стислі архіви у звичайних файлах, наприклад, він не в змозі стискати потік. Він не в змозі зберігати більшість атрибутів файлів Unix, таких як право власності, ACL, розширені атрибути, жорсткі посилання ...

У Linux, як компресорі , ви xzвикористовуєте той же алгоритм стиснення, що і 7zip(LZMA2). Ви можете використовувати його для стискання архівів дьогтю.

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


6
Чи можете ви розширити розрізнення "компактор" та "компресор", який ви тут робите?
mattdm

2
@mattdm, компресор компресується лише, компактор ущільнює кілька речей у стислий архів.
Stéphane Chazelas

2
@mattdm, дивно. Це була дуже поширена термінологія та відмінність у 90-х, схоже на пошук у Google, це вже не так.
Stéphane Chazelas

6
Може, це була річ DOS? В Unix зазвичай розрізняють стиснення та архівацію (як ви також говорите), але я ніколи не чув "компактор".
mattdm

1
@mattdm, ну, компактним є архів + стиснення (можливо, з індексуванням, можливо, члени стиснуті окремо), архівування не передбачає стиснення. Це не річ DOS, але, можливо, це була французька річ. В архівах Googling usenet, я, здається, натрапляю лише на мої статті, тому це цілком могло бути моїм винаходом, хоча я впевнений, що це не так.
Стефан Шазелас

65

lrzip - це те, що ви справді шукаєте, особливо якщо ви стискаєте вихідний код!

Цитуючи README:

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

lrzip працює, спочатку скануючи та видаляючи надмірність даних на великі відстані за допомогою алгоритму, заснованого на rzip, а потім стискаючи не зайві дані.

Con Kolivas надає фантастичний приклад у списку розсилки ядра 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дерев файлів системних файлів, оскільки вони зазвичай містять багато надмірних надмірностей, що lrzipдуже добре компресує.
Франки

10
Я спробував lrzipі pixzна 19 Гб текстовий файл. Для обох потрібно було півгодини, щоб стиснути його (на шестигранній машині), але lrzфайл був у розмірі половини xzфайлу (2,7 проти 4,4 ГБ). Отже, замість цього ще один голос за цю відповідь.
fnl

3
@Franki під "конкурсом", ти маєш на увазі "засвідчення"?
mitchus

Відчуває себе Pied Piper!
Denys Vitali

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-Comppare-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

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


1
Мені потрібно не погодитися з цим! Файловий компресор без втрат, що забезпечує найбільший коефіцієнт зменшення, незалежно від швидкості стиснення, що працює на GNU / Linux, ймовірно, zpaqабо paq8l. Однак вони настільки повільні, що є практичним для більшості реальних звичаїв.
Франки

@Franki класно sudo apt-get install zpaq, я зробив кілька тестів, згідно з wiki , це додаток було б найновішим 2009 року, але воно все одно втрачає на kgb (для цього використовується PAQ6), але kgb набагато повільніше ...
Водолій Power

@Franki насправді я щойно виявив, що zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarстискає більше, ніжkgb -9
Сила Водолія

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 бета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 beta2 серйозно заслуговує на рідну версію Linux! Можливо, щось можна досягти з MinGW, дивіться це , але ця команда все-таки погано спрацьовує:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Можливо, спробуйте скласти його dmcs(Mono)? дивіться цю пораду .


2

7zip - це не унікальна технологія, але підтримує кілька різних методів стиснення (див. Wikipedia 7z про це).

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

Якщо вас цікавлять інструменти, ви можете переглядати сайт, він є російською мовою, але переклад Google може допомогти. Є великий депозит бінарних файлів , який ви можете використовувати (або не зможете) з Linux з вином, якщо це дійсно потрібно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.