J'ai un fichier assez volumineux (~ 50 Go) et cela prend du temps à courir
tar xvf file.tar.bz2
dessus. Je suis conscient des programmes qui peuvent effectuer une compression parallèle pour les fichiers bzip2 mais pas des programmes qui peuvent effectuer une décompression parallèle pour les fichiers bzip2.
Existe-t-il des programmes pouvant atteindre cet objectif? Quelle est la syntaxe exacte de la commande à utiliser pour extraire du fichier?
J'utilise Ubuntu 12.04
lbzip2
et pbzip2
sont les outils que vous pouvez utiliser pour la compression et la décompression parallèles.
Usage:
lbzip2 -d <file.tar.bz2>
pbzip2 -d <file.tar.bz2>
L'option -d
est utilisée pour la décompression.
Pour installer ces paquets:
lbzip2 type:
Sudo apt-get install lbzip2
pbzip2 type:
Sudo apt-get install pbzip2
Vous pouvez décompresser votre archive avec une commande unique en utilisant l'option tar -I
. Il vous permet d'utiliser n'importe quel utilitaire de compression prenant en charge l'option -d
.
tar -I lbzip2 -xvf <file.tar.bz2>
Cela est très utile lorsque vous désaérez avec de grandes archives car vous vous n'avez pas besoin de deux fois la taille non compressée disponible sur le système de fichiers cible (le fichier tar temporaire et le fichier de sortie). Il est également plus rapide que nécessaire moins IO de disque.
Bien sûr, cela fonctionne aussi lors de la compression:
tar -I lbzip2 -cvpf <file.tar.bz2> <file>
Vérifiez tar --help
pour plus d'options.
vous pouvez utiliser pbzip2 avec le drapeau -d
pour "décompresser",
depuis la page de manuel:
pbzip2 -d myfile.tar.bz2
Cet exemple va décompresser le fichier "myfile.tar.bz2" dans le 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 décompression, vous devez décompresser 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" auxquels les deux algorithmes de compression sont appliqués. Donc, pbzip2 ne fera que décompresser l'archive, mais il ne va pas extraire les fichiers, utilisez tar
pour extraire les fichiers. Tar ne devrait pas tarder car l'archive est déjà décompressée et il ne fera qu'extraire les fichiers. (notez que nous n'utilisons pas l'indicateur 'z' ou l'indicateur 'j' dans la commande tar, ce qui indique que nous souhaitons également décompresser le fichier)
lbzip2 semble beaucoup mieux que pbzip2 dans votre cas car il est capable d’accélérer la décompression des fichiers .bz2 standard alors que pbzip2 ne le fait pas. (Je viens de le tester - 17 secondes pour lbzip2 contre 56 secondes pour pbzip2 sur un quad core partiellement chargé).