Bonjour,
impossible de mettre la main sur une maniere de recuperer la taille du contenu d'un fichier compresse avec bzip2 sans passer par l'etape de decompression: aucun utilitaire ne le propose, et il semble que le format de fichier .bz2 ne contienne pas cette information (contrairement a gzip qui stocke la taille du fichier decompresse et son CRC dans les 8 derniers octets)
dois je me resigner a decompresser ou etes vous en mesure de partager une formule magique ?
merci
# tar ?
Posté par B. franck . Évalué à -1.
[^] # Re: tar ?
Posté par Anonyme . Évalué à 3.
Dans ce cas c'est le tar qui est compresse et non les fichiers inclus dans le tar
Donc "tar tvjf" decompresse le fichier tar.bz2 et lit le .tar a la volee pour recuperer les tailles des fichiers qui y sont inclus
# Le couteau suisse: hachoir
Posté par Steve Azriel . Évalué à 2.
Un piste dont voici l'historique:
[http://linuxfr.org/forums/12/14696.html] (merci dark_star et les autres) -> .... -> [http://hachoir.org/]
Et dans un des filtres de ce couteau suisse, on trouve un code en python qui décompose le fichier .bz2 [Bzip2] [http://hachoir.org/browser/hachoir/trunk/hachoir/parser/arch(...)].
Après, j'ai un peu de mal à comprendre la dernière formule qui semble donner une taille (il faudrait trouver où & comment sont initialisés/évalués les champs .size et .current_size de l'instance self):
"(self.size - self.current_size)/8" <=> "Compressed data content"
Ou plus simple ^__^, tester cet outil sur un jeu de fichiers .bz2 ...
Bon courage !
Cdlt,
[^] # Re: Le couteau suisse: hachoir
Posté par Anonyme . Évalué à 2.
[^] # Re: Le couteau suisse: hachoir
Posté par Frédéric Heulin . Évalué à 1.
http://www.opennet.ru/docs/formats/BZIP2_tech.html
indique que les fichiers bz2 contiennent un chunk INDX/iNDX qui contient un prélude et une série d'entêtes, un pour chaque fichier contenu dans l'archive. Le dernier élément de cet entête est la taille du fichier (non compressé).
[^] # Re: Le couteau suisse: hachoir
Posté par Anonyme . Évalué à 2.
[^] # Re: Le couteau suisse: hachoir
Posté par Frédéric Heulin . Évalué à 1.
Par contre, pour essayer de me rattraper, j'ai essayé de trouver des infos sur la structure du format bzip2, pour le moment sans succès. Quelqu'un aurait ça dans ses placards ?
[^] # Re: Le couteau suisse: hachoir
Posté par Victor STINNER (site web personnel) . Évalué à 2.
Je me suis aussi posé la question : est-ce que le format bzip2 indique ou non la taille décompressée ? Apparement oui, il faut voir dans les 95% des non-reconnues par Hachoir :-)
Haypo
[^] # Re: Le couteau suisse: hachoir
Posté par Anonyme . Évalué à 2.
# WC
Posté par clearstream . Évalué à 1.
Pour avoir un listing :
bzcat mon_fichier.bz2 | tar tvf -
bzcat mon_fichier.bz2 | cpio -tv
[^] # Re: WC
Posté par Anonyme . Évalué à 2.
quant a tes deux derniere lignes, encore faut il que le fichier compresse soit une archive tar ou cpio
[^] # Re: WC
Posté par clearstream . Évalué à -1.
Fous ton fichier à la poubelle et essais de le trouver au format zip.
[^] # Re: WC
Posté par clearstream . Évalué à 2.
Petit détail, wc est utilisé pour compter les caractères. Donc il tient compte des locales et notament d'UTF8. Donc si mon_fichier.bz2 contient du binaire alors utilisé :
bzcat mon_fichier.bz2 | LANG=C wc
[^] # Re: WC
Posté par Anonyme . Évalué à 2.
C'est pour faire un barre de defilement lors de la decompression, donc c'est un peu ballot d'avoir a decompresser le fichier pour avoir cette info
[^] # Re: WC
Posté par Anonyme . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.