8
votes

Possible de combiner plusieurs archives BZ2 en une fois?

J'ai plusieurs (27) énormes (plusieurs GB chacun) des fichiers d'archives BZ2 que j'ai besoin combinés en une archive BZ2. Décompressez-les, puis créant une nouvelle archive de ce qui était juste non compressé n'est pas une option pour moi, car comprimé, les 27 fichiers s'ajoutent jusqu'à environ 100 Go, et non compressé, il est environ 5-6Tb (oui c'est des téraoctets lol).

Peut-on être fait avec une sorte de script ou existe-t-il un autre format de compression qui permet de faire cela (plus facile)?


0 commentaires

4 Réponses :


3
votes

Vous devez retourner la question - vous ne devez pas essayer de décompresser puis de recompréger les fichiers, simplement de faire une archive de goudron de tous les fichiers distincts - goudron est idéal comme conteneur pour les fichiers séparés.

tar cf tarofbzfiles.tar *.bz2


4 commentaires

En fait, j'ai vraiment besoin d'une archive contenant tout le contenu des 27 archives, lol. Je suis à peu près sûr qu'une archive contenant 27 archives ne fonctionnera malheureusement pas à mon objectif. :(


Quel type de fichier est l'archive .bz2? Si c'est un fichier de goudron, il est possible de les concaténer. Il nécessiterait un script enchaînant la notion de chacune des archives dans leur propre tuyau / FIFO qui est utilisée dans un ensemble de commandes de gol -a, qui se concluent tous en une FIFO qui est de la canalisation à travers bzip2


Je pense chaque fichier est un seul fichier XML (énorme). J'essaie actuellement une commande appelée bzcat comme ceci: bzcat * .bz2> newfile.bz2 . Je l'ai commencé il y a plus d'une heure, donc nous verrons comment ça se passe ... beaucoup plus tard. :)


bzcat * .bz2 | bzip2 -c> newfile.bz2 - Si vous ne re-bzip2 pas le fichier, vous n'obtiendrez pas la compression !!



33
votes

Vous pouvez simplement concaténer de nombreux fichiers BZ2 dans un fichier BZ2 unique, comme celui-là:

$ CAT File1.bz2 File2.bz2 File3.bz2> résultat_file.bz2

bzip2 et d'autres utilitaires tels que lbzip2 sera en mesure de décompresser le fichier résultant comme prévu.


1 commentaires

En fait, ça marche! De l'homme Bzip2: Bunzip2 décompressera correctement un fichier qui est la concaténation de deux fichiers compressés ou plus. Le résultat est la concaténation des fichiers non compressés correspondants. Les tests d'intégrité (-T) de fichiers compressés concaténés sont également pris en charge.



4
votes

Si vous êtes prêt à brûler quelques jours de CPU, voici une solution avec la facilité de tuyau magique des systèmes d'exploitation modernes Unix (R): xxx

... effectivement, saisir lbzip2 version 2.0 , et faites de même, sauf avec lbzip2, sur un multicorre: xxx


0 commentaires

2
votes

Vous pouvez raccourcir la réponse de @ Lacos avec le BZCAT BZCAT pour BZIP2 -DC ET TUYAL RETOUR dans BZIP2 Comme d'habitude. Pas plus correct que @lacos mais un peu slicker;) xxx


0 commentaires