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: