Czy można skompresować bardzo duży plik (~ 30 GB) za pomocą gzip?

17

Czy można skompresować bardzo duży plik (~ 30 GB) za pomocą gzip? Jeśli tak, jakich poleceń, przełączników i opcji należy użyć?

A może istnieje inny program (najlepiej taki powszechnie dostępny w dystrybucjach Ubuntu), którego można użyć do kompresji / skompresowania bardzo dużych plików? Czy masz z tym jakieś doświadczenie?

Andrzej
źródło
Najbardziej hardkorowym kompresorem jest xz, lub jego równoległa wersja, pxz. pxz -9ve - <in >out.xzi upiekasz kurczaka na komputerze, ale wynik będzie wynosił około 60% wyniku gzip. Potrzebujesz do tego około 7 GB.
peterh - Przywróć Monikę

Odpowiedzi:

22

AFAIK nie ma limitu rozmiaru gzip- przynajmniej nie 30 GB. Oczywiście potrzebujesz miejsca na spakowany plik na dysku, obie wersje będą tam jednocześnie podczas kompresji.

bzip2 kompresuje pliki (nie tylko duże :-) lepiej, ale jest (czasem dużo) wolniejsze.

o nie
źródło
4
bzip2 jest szczególnie dobry w kompresji kodu źródłowego (i tym podobnych). Dobrym konkurentem jest gzip do użytku ogólnego. Dostępność gzip w różnych systemach operacyjnych jest lepsza niż bzip2
jippie
Czy kompresja bezstratna bzip2? Dzięki.
Andrew
3
@Andrew Tak, gzip / bzip2 / etc ... są bezstratne.
Renan
1
I jest pbzipteż - wykorzysta więcej niż jeden rdzeń procesora. Ale wciąż o wiele wolniej niż gzip.
Nils,
1
@Nils: na moim Ubuntu jest tylkopbzip2
rubo77
8

jeśli potrzebujesz dobrego współczynnika kompresji, możesz wypróbować lzma. jest szybszy i bardziej wydajny niż bzip2 i może być szybszy nawet niż gzip (nie wiem tego na pewno)

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

fromnaboo
źródło
4
lzmajest przestarzałe na korzyść xzteraz. Ten sam algorytm, nieco inny (ulepszony?) Format pliku wokół niego. LZMA jest wolniejszy niż gzip, ale przy maksymalnej prędkości nadal jest dość dobrą kompresją na bardzo redundantnych rzeczach, takich jak dane JSON. ( xz -0)
Peter Cordes,
3

Jeśli napotykasz limit, zmień kolejność. Zamiast:

gzip file

robić:

gzip < file > file.gz

Działa dobrze.

Jozuego
źródło
2

Format gzip reprezentuje rozmiar wejściowy modulo 2 ^ 32, więc --listopcja zgłasza niepoprawne rozmiary nieskompresowane i współczynniki kompresji dla nieskompresowanych plików 4 GB i większych.

Więc weź bzip2(wersja 1.0.2 i wyższe) lub xz.

klinowy
źródło
Jeśli powinien to być tylko gzip, plik musi być podzielony na mniejsze części, do 4 Gb każdy.
pismo klinowe,
Dostępne są do tego dzielniki plików.
Vérace
Cóż, nie trzeba tego dzielić, po prostu zgłaszane rozmiary będą nieprawidłowe.
Law29
2

XZ ustawiony na najniższą kompresję może pobić gzip pod względem szybkości i kompresji.

Peter Shannon
źródło