Très intéressant je n’avais jamais réfléchie comme ça, mais c’est tout à fait exacte.
J’aurais une question. ar et tar sont ils assez peut sensible à la dégradation ?
(Au passage bzip2 avec son système en morceau peut être utilisable pour de l’archivage, non?)[/quote]
En fait si tu comprimes par blocs (même assez gros) identifiable, c’est envisageable. Pour le voir, tu prends un fichier texte compressé, tu modifies un octet et tu essaye de voir ce que tu peux récupérer.
Sur un fichier texte de 5287904 octets, on obtient une archive bz2 de 1449586 octets. Je modifies un bit sur un octet au hasard. J’utilise bzip2recover, ça me récupère 5 blocs sur 6 ce qui au final me permet de récupérer 4365972 octets. La perte a été de 20% pour une erreur sur 1bit par 1million500000. Ça fait quand même beaucoup de pertes.
tar ne fait que concaténer les fichiers et mettant des drapeaux. tar (sans compression) est impeccable pour l’archivage.
Pour gzip c’est beaucoup mieux (et j’en suis surpris): la même manoeuvre donne
1 seule différence entre le fichier d’origine et le fichier obtenu:
[quote]
francois@totoche:/tmp$ diff -urN gros.txt gras.txt
— gros.txt 2007-10-06 11:56:15.000000000 +0200
+++ gras.txt 2007-10-06 12:06:37.000000000 +0200
@@ -1079,7 +1079,7 @@
struct pci_pool *pool;
-
pool = pci_pool_create(name, dev, size, align, alloc);
The “name” is for diagnostics (like a kmem_cache name); dev and size
are as above. The device’s hardware alignment requirement for this
[/quote] ) au lieu de ,
C’est assez étonnant et montre qu’une archive compressée avec gzip est un excellent compromis. Mon point de vue de départ est excessif (en fait je n’avais jamais testé complètement comme je viens de le faire). Il faudrait affiner en dézinguant 5 ou 6 bits au hasard. En tout cas:
bzip2 à éviter pour l’archivage
gzip est envisageable visiblement. Vu le gain de place, c’est une bonne idée.