20 votes

Y a-t-il une commande linux pour effectuer une décompression parallèle d'un fichier tar.bz2 ?

J'ai un fichier plutôt volumineux (~50 Go) et cela prend du temps pour s'exécuter

tar xvf fichier.tar.bz2

dessus. Je suis au courant de programmes qui peuvent faire de la compression parallèle pour les fichiers bzip2 mais je ne connais pas de programmes qui peuvent faire de la décompression parallèle pour les fichiers bzip2.

Y a-t-il des programmes qui peuvent réaliser cela? Quelle est la syntaxe exacte de la commande à utiliser pour extraire du fichier?

Je suis sous ubuntu 12.04

24voto

devav2 Points 33862

lbzip2 et pbzip2 sont les outils que vous pouvez utiliser pour la compression et la décompression parallèle.

Utilisation:

lbzip2 -d  
pbzip2 -d  

L'option -d est utilisée pour la décompression.

Pour installer ces packages:

lbzip2 Installer lbzip2tapez :

sudo apt-get install lbzip2

pbzip2 Installer pbzip2tapez :

sudo apt-get install pbzip2

13voto

Ludovic Ronsin Points 581

Vous pouvez décompresser votre archive avec une seule commande en utilisant l'option tar -I. Cela vous donne la possibilité d'utiliser n'importe quel utilitaire de compression qui prend en charge l'option -d.

tar -I lbzip2 -xvf 

Cela est très utile lors du traitement de grosses archives car vous n'avez pas besoin d'avoir deux fois la taille non compressée disponible sur le système de fichiers cible (le fichier temporaire tar et le fichier de sortie). C'est aussi plus rapide car vous avez besoin de beaucoup moins d'E/S disque.

Évidemment, cela fonctionne également lors de la compression :

tar -I lbzip2 -cvpf  

Consultez tar --help pour plus d'options.

5voto

ebo Points 5435

Vous pouvez utiliser pbzip2 avec le drapeau -d pour "décompresser",

du manpage:

  pbzip2 -d myfile.tar.bz2

Cet exemple décompressera le fichier "myfile.tar.bz2" en un fichier décompressé "myfile.tar". Il utilisera le nombre de processeurs détectés automatiquement (ou 2 processeurs si la détection automatique n'est pas prise en charge).

Après la décompression, vous devez extraire le fichier avec

 tar xf myfile.tar

Un fichier tar est simplement un conteneur auquel vous pouvez appliquer plusieurs algorithmes de compression. Par exemple, vous pouvez avoir un ".tar.gz" ou un ".tar.bz2" qui ont tous deux des algorithmes de compression différents appliqués. Ainsi, pbzip2 ne fera que décompresser l'archive mais n'extraira pas les fichiers, utilisez tar pour extraire les fichiers. Tar ne devrait pas prendre longtemps car l'archive est déjà décompressée et il extraira simplement les fichiers. (notez que nous n'utilisons pas le drapeau 'z' ou le drapeau 'j' dans la commande tar, qui indiquent que nous voulons également décompresser le fichier)

3voto

Stefan Reich Points 131

Lbzip2 semble beaucoup mieux que pbzip2 dans votre cas car il est capable d'accélérer la décompression des fichiers .bz2 standard tandis que pbzip2 ne le fait pas. (Je viens de le tester - 17 secondes pour lbzip2 contre 56 secondes pour pbzip2 sur un processeur quad core partiellement chargé).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X