Nie jestem pewien, czy gzip rozpakował cały plik

3

Dekompresuję listę plików za pomocą gzip:

W dowolnym momencie przeskakuje z jednego pliku do drugiego, czytam (używam opcji pełnej):

star_60out.txt.gz:   91.0% -- replaced with star_60out.txt

lub

star_65out.txt.gz:   90.9% -- replaced with star_65out.txt

Czy to oznacza, że ​​zdekompresował tylko 91% tych plików?

Argentyna
źródło

Odpowiedzi:

6

Nie martw się, wszystko w porządku :

-v -
verbose Verbose. Wyświetl nazwę i procent zmniejszenia dla każdego pliku skompresowanego lub zdekompresowanego.

Widzisz więc, jak bardzo plik został skompresowany, a nie pewien postęp samej akcji.

Może nawet pokazywać wartości ujemne . Na przykład, jeśli chcesz przetestować samemu, i najpierw wygeneruj binarny plik testowy z losowymi wartościami, który jest trudny do skompresowania:

$ head -c 100000 /dev/urandom > test.orig
$ file test.orig
test.orig: data

... i skompresuj, co daje plik większy niż oryginał:

$ gzip --keep test.orig
$ ls -l test.*
-rw-r--r--  1 arjan  staff  100000 Oct 18 11:36 test.orig
-rw-r--r--  1 arjan  staff  100063 Oct 18 11:36 test.orig.gz

... i rozpakuj to, zobaczysz śmieszną wartość ujemną:

$ gzip -dcv test.orig.gz > test.new
test.orig.gz:  -0.1%

Ale nawet wtedy wszystko jest w porządku, ponieważ poniższe nie pokazują żadnych różnic:

$ diff test.orig test.new

Na koniec możesz także użyć --list(ujemnego) współczynnika kompresji:

$ gzip --list test.orig.gz
compressed uncompressed  ratio uncompressed_name
    100063       100000  -0.1% test.orig

(Powyżej danych wyjściowych z systemu OS X na komputerze Mac).

Arjan
źródło