[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: guter Komprimierer gesucht...



Heike C. Zimmerer wrote:
Bjoern Schmidt <bj-schmidt@uni-paderborn.de> writes:
...weil:

gzip -l backup.tar.gz:
 compressed        uncompressed  ratio uncompressed_name
 12427015910           934766592 -1229.4% backup.tar

In dem tar sind ca. 6GB *.jpeg-Bilder, der Rest ist ein
Debian Sarge. Mit welchem Packer sollte ich das Archiv also
Packen damit es danach kleiner ist und nicht so massiv
grösser? Bisher gestestet habe ich nur gzip (-1 bis -9 als
Option)...

Das Archiv ist entweder kaputt oder du hast sparse Files drin, aber
die zugehörige tar-Option nicht gesetzt.

Weder noch. Die Lösung ist viel einfacher. "gzip -l" zeigt einfach nur
falsch an. Ich habe mal ein "zcat|wc -c" gemacht und hatte plötzlich
ein fast 14GB großes File auf der Platte, im groben also eine Kompression
von ~89% anstelle von -1229%.

Durch jpeg lässt sich das
nicht erklären. Um deine Zahlen gegenüberzustellen:

12427015910         komprimiert
   93476659         Original

Kleines Beispiel mit sparse Files:

# Sparse File erstellen:
hcz@tazzelwurm:~$ dd if=/dev/zero of=y bs=1 seek=5G count=1
1+0 records in
1+0 records out
1 bytes transferred in 0.001589 seconds (629 bytes/sec)

# Und auf zwei verschiedene Weisen packen:
hcz@tazzelwurm:~$ tar czf y.tar.gz y
hcz@tazzelwurm:~$ tar czSf y_sparse.tar.gz y

# Das Ergebnis:
hcz@tazzelwurm:~$ ls -l y*
-rw-r--r--  1 hcz hcz 5368709121 2004-12-28 18:46 y
-rw-r--r--  1 hcz hcz    5210286 2004-12-28 18:49 y.tar.gz
-rw-r--r--  1 hcz hcz        124 2004-12-28 18:52 y_sparse.tar.gz

Ob sparse Files mit drin sind oder nicht macht keinen Unterschied, komprimiert
wird bei Deinem Beispiel in beiden Fällen, wenn auch unterschiedlich stark. Bei
mir wurde ja offensichtlich nicht komprimiert, sondern expandiert. Das aber stimmt gar nicht, "gzip -l" zeigt einfach nur falsch an. Dein Beispiel:

lucky21@gigabyte:~$ cd /tmp/
lucky21@gigabyte:/tmp$ dd if=/dev/zero of=y bs=1 seek=5G count=1
1+0 records in
1+0 records out
1 bytes transferred in 0.000816 seconds (1225 bytes/sec)
lucky21@gigabyte:/tmp$ tar czf y.tar.gz y
lucky21@gigabyte:/tmp$ tar czSf y_sparse.tar.gz y
lucky21@gigabyte:/tmp$ ll
total 5144
-rw-r--r--  1 lucky21 lucky21 5368709121 Dec 28 23:05 y
-rw-r--r--  1 lucky21 lucky21    5210290 Dec 28 23:15 y.tar.gz
-rw-r--r--  1 lucky21 lucky21        130 Dec 28 23:16 y_sparse.tar.gz
lucky21@gigabyte:/tmp$ gzip -l y.tar.gz
         compressed        uncompressed  ratio uncompressed_name
            5210290          1073752064  99.5% y.tar
lucky21@gigabyte:/tmp$ gzip -l y_sparse.tar.gz
         compressed        uncompressed  ratio uncompressed_name
                130               10240  98.9% y_sparse.tar

Was auch immer gzip hier anzeigt, es ist falsch (zumindest von "y.tar.gz")
oder ich lese es falsch.

tar ...S... hebt im übrigen den "sparse-Zustand" auf:
lucky21@gigabyte:/tmp$ zcat y.tar.gz |wc -c
5368719360
lucky21@gigabyte:/tmp$ zcat y_sparse.tar.gz |wc -c
10240

--
Mit freundlichen Gruessen
Bjoern Schmidt



Reply to: