¿Algún comando de Linux para realizar la descompresión paralela del archivo tar.bz2?

17

Tengo un archivo bastante grande (~ 50 GB) y tarda un tiempo en ejecutarse

tar xvf file.tar.bz2

en eso. Soy consciente de los programas que pueden hacer compresión paralela para archivos bzip2 pero desconozco los programas que pueden hacer descompresión paralela para archivos bzip2.

¿Hay algún programa que pueda lograr esto? ¿Cuál es la sintaxis exacta del comando que se usa para extraer del archivo?

Estoy usando ubuntu 12.04

usuario784637
fuente

Respuestas:

22

lbzip2y pbzip2son las herramientas que puede usar para la compresión y descompresión paralelas.

Uso:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d La opción se utiliza para la descompresión.

Para instalar estos paquetes:

Instalar lbzip2Tipo lbzip2 :

sudo apt-get install lbzip2

Instalar pbzip2tipo pbzip2 :

sudo apt-get install pbzip2
devav2
fuente
Entonces, si entiendo correctamente, ¿necesito descomprimir y luego descomprimir? ¿Como 2 comandos en lugar de tar xvf?
user784637
1
Sí, cuando lo ejecutes lbzip2 -d -n 2 file.tar.bz2le dará un archivo tar. Que necesita ser sin estrellas.
devav2
1
Desde la página de manual de pbzip2 (lbzip2 cuenta una historia similar): "Los archivos que se comprimen con pbzip2 también aumentarán considerablemente la velocidad cuando se descomprimen con pbzip2. Los archivos que se comprimieron con bzip2 no verán la aceleración ya que bzip2 empaqueta los datos en un solo fragmento eso no se puede dividir entre procesadores ".
Tapio
1
@Tapio Aquí está la Descripción para lbzip2"Comprimir o descomprimir operandos de ARCHIVO o entrada estándar a archivos normales o salida estándar, llamando a libbz2 de Julian Seward desde múltiples hilos. La utilidad lbzip2 emplea múltiples hilos y un divisor de entrada incluso cuando descomprime archivos .bz2 creado por bzip2 estándar (pero vea ERRORES a continuación) ".
devav2
1
Solo por la respuesta, entendería que ambos programas deben usarse juntos de alguna manera, pero ¿parecen ser alternativas? (Dice "lbzip2 y pbzip2 son las herramientas ...", "Uso: lbzip2 ... pbzip2 ...", "para instalar estos ...")
Volker Siegel
11

Puede descomprimir su archivo con un solo comando utilizando la -Iopción tar . Le brinda la posibilidad de utilizar cualquier utilidad de compresión que admita la -dopción.

tar -I lbzip2 -xvf <file.tar.bz2>

Resulta muy útil cuando se trata de un archivo grande, ya que no necesita tener el doble del tamaño sin comprimir disponible en el sistema de archivos de destino (el archivo tar temp y el archivo de salida) También es más rápido ya que necesita mucho menos E / S de disco.

Por supuesto, eso también funciona al comprimir:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

Consulte tar --helppara más opciones.

Ludovic Ronsin
fuente
1
Otra opción (por ejemplo, si su versión de "alquitrán" no entiende la opción -I) eslbzip2 -dc file.tar.bz2 | tar xvf -
Wodin
5

puedes usar pbzip2 con la -dbandera para "descomprimir",

de la página del manual:

  pbzip2 -d myfile.tar.bz2

Este ejemplo descomprimirá el archivo "myfile.tar.bz2" en el archivo descomprimido "myfile.tar". Utilizará el número de procesadores detectados automáticamente (o 2 procesadores si no se admite la detección automática).

Después de descomprimir, debe descomprimir el archivo con

 tar xf myfile.tar

Un archivo tar es solo un contenedor, al que puede aplicar múltiples algoritmos de compresión, por ejemplo, puede tener un ".tar.gz" o un ".tar.bz2" que tienen aplicados diferentes algoritmos de compresión. Entonces pbzip2 solo descomprimirá el archivo pero no extraerá los archivos, úselo tarpara extraer los archivos. Tar no debería demorar mucho ya que el archivo ya está descomprimido y solo extraerá los archivos. (tenga en cuenta que no estamos utilizando la bandera 'z' o la bandera 'j' en el comando tar, que indican que también queremos descomprimir el archivo)

Sam
fuente
1
la página del manual tiene algunos ejemplos útiles: manpages.ubuntu.com/pbzip2
Savvas Radevic
@Sam Gracias por la respuesta: ¿podría responder el comentario que dejé en la otra respuesta
User784637
2

lbzip2 parece mucho mejor que pbzip2 en su caso, ya que puede acelerar la descompresión de los archivos .bz2 estándar, mientras que pbzip2 no hace eso. (Solo lo probé: 17 segundos para lbzip2 frente a 56 segundos para pbzip2 en un núcleo cuádruple parcialmente cargado).

Stefan Reich
fuente