Чи можливо стиснути дуже великий файл (~ 30 Гб) за допомогою gzip?


17

Чи можливо стиснути дуже великий файл (~ 30 Гб) за допомогою gzip? Якщо так, то які команди, перемикачі та параметри слід використовувати?

Або є інша програма (бажано, яка є загальнодоступною в дистрибутивах Ubuntu), яку я можу використовувати для стиснення / перетягування дуже великих файлів? Чи маєте ви з цим досвід?


Найбільш жорсткий компресор - xz, або його паралельна версія, pxz. pxz -9ve - <in >out.xzі ви запечете курку на своєму ПК, але результат буде приблизно 60% від gzip результату. Для цього вам потрібно близько 7 ГБ.
петерх

Відповіді:


22

AFAIK немає обмеження розміру gzip- принаймні, не 30 Гб. Звичайно, вам потрібно простір для zipped-файлу на диску, обидві версії будуть там одночасно під час стискання.

bzip2 стискає файли (не тільки великі :-) краще, але це (іноді й набагато) повільніше.


4
bzip2 особливо добре стискає вихідний код (тощо). Це хороший конкурент для gzip і для загального використання. Доступність для gzip для різних операційних систем краща, ніж bzip2
jippie

Чи стиснення bzip2 без втрат? Спасибі.
Андрій

3
@Andrew Так, gzip / bzip2 / тощо ... всі без втрат.
Ренан

1
І є pbzipтакож - що буде використовувати більше одного ядра процесора. Але все-таки шлях повільніше, ніж gzip.
Нілс

1
@Nils: на моєму Ubuntu є лишеpbzip2
rubo77

8

якщо вам потрібна хороша швидкість стиснення, ви можете спробувати lzma. це швидше і ефективніше bzip2 і може бути швидше навіть ніж gzip (я цього не знаю точно)

http://www.thegeekstuff.com/2010/06/lzma-better-compression-than-bzip2-on-unix-linux/


4
lzmaзараз застаріла на користь xz. Той самий алгоритм, дещо інший (покращений?) Формат файлу, обгорнутий навколо нього. LZMA повільніше, ніж gzip, але з максимальною швидкістю все ще досить добре стискається на дуже надмірних речей, таких як дані JSON. ( xz -0)
Пітер Кордес

3

Якщо ви стикаєтесь з межею, переставляйте. Замість:

gzip file

робити:

gzip < file > file.gz

Працює просто чудово.


2

Формат gzip представляє модуль розміру вхідного сигналу 2 ^ 32, тому --listпараметр повідомляє про неправильні розміри стислих розмірів та коефіцієнти стиснення для нестиснених файлів 4 Гб і більше.

Отже, візьміть bzip2(v1.0.2 і вище) або xz.


Якщо він повинен бути лише gzip, то ваш файл повинен бути розділений на менші частини до 4 Gb кожна.
клинопис

Для цього доступні роздільники файлів.
Vérace

Ну, це не потрібно розділяти, це просто те, що повідомлені розміри будуть неправильними.
Закон29

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