Apakah mungkin untuk mengompres file yang sangat besar (~ 30 GB) menggunakan gzip?

17

Apakah mungkin untuk mengompres file yang sangat besar (~ 30 GB) menggunakan gzip? Jika demikian, perintah, sakelar, dan opsi apa yang harus saya gunakan?

Atau ada program lain (lebih disukai yang biasanya tersedia di distribusi Ubuntu) yang dapat saya gunakan untuk kompres / zip file yang sangat besar? Apakah Anda punya pengalaman dengan ini?

Andrew
sumber
Kebanyakan kompresor hardcore adalah xz, atau versi paralelnya, pxz. pxz -9ve - <in >out.xzdan Anda akan memanggang ayam di PC Anda, tetapi hasilnya akan sekitar 60% dari hasil gzip. Anda membutuhkan sekitar 7 GB untuk itu.
peterh

Jawaban:

22

AFAIK tidak ada batasan ukuran untuk gzip- setidaknya tidak 30GB. Tentu saja, Anda memerlukan ruang untuk file zip pada disk Anda, kedua versi akan ada di sana secara bersamaan saat mengompresi.

bzip2 kompres file (tidak hanya yang besar :-) lebih baik, tetapi itu (kadang-kadang banyak) lebih lambat.

Oh tidak
sumber
4
bzip2 sangat bagus dalam mengompresi kode sumber (dan sejenisnya). Ini juga merupakan pesaing yang bagus untuk gzip untuk penggunaan umum. Ketersediaan untuk gzip di berbagai sistem operasi lebih baik daripada bzip2
jippie
Apakah kompresi lossless bzip2? Terima kasih.
Andrew
3
@ Andrew Ya, gzip / bzip2 / etc ... semuanya lossless.
Renan
1
Dan ada pbzipjuga - yang akan menggunakan lebih dari satu CPU-core. Tapi masih jauh lebih lambat gzip.
Nils
1
@Nils: di Ubuntu saya hanya adapbzip2
rubo77
8

jika Anda membutuhkan tingkat kompresi yang baik, Anda dapat mencoba lzma. lebih cepat dan lebih efisien daripada bzip2 dan mungkin lebih cepat bahkan daripada gzip (saya tidak tahu pasti)

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

fromnaboo
sumber
4
lzmasudah usang xzsekarang. Algoritma yang sama, format file yang agak berbeda (ditingkatkan?) Melilitnya. LZMA lebih lambat dari gzip, tetapi pada kecepatan maksimal itu masih kompresi yang cukup baik pada hal-hal yang sangat berlebihan seperti data JSON. ( xz -0)
Peter Cordes
3

Jika Anda berlari ke batas, atur ulang. Dari pada:

gzip file

melakukan:

gzip < file > file.gz

Bekerja dengan baik.

Joshua
sumber
2

Format gzip mewakili ukuran input modulo 2 ^ 32, sehingga --listopsi melaporkan ukuran yang tidak terkompresi dan rasio kompresi yang salah untuk file yang tidak terkompresi 4 GB dan lebih besar.

Jadi, ambil bzip2(v1.0.2 dan lebih tinggi) atau xz.

runcing
sumber
Jika seharusnya hanya gzip saja, maka file Anda harus dibagi menjadi bagian-bagian yang lebih kecil hingga masing-masing 4 Gb.
kuno
Ada splitter file yang tersedia untuk ini.
Vérace
Nah, itu tidak memiliki harus berpisah, hanya saja ukuran dilaporkan akan salah.
Law29
2

XZ yang diatur ke kompresi terendah mungkin mengalahkan gzip untuk kecepatan dan kompresi.

Peter Shannon
sumber