cómo inflar Y extraer un .tar.bz2 usando la herramienta de línea de comando 7-zip


7

Tengo un archivo .tar.bz2 que quiero descomprimir y extraer a través de la herramienta de línea de comandos 7-zip.

Así que básicamente estoy buscando el equivalente de

tar -xjf foo.tar.bz2

con 7-zip solo hay la opción "x" para extraer, así que

7z x foo.tar.bz2

me da el archivo inflado foo.tar en lugar de descomprimir todos los directorios dentro del tar. ¿Cuál es la opción correspondiente para 7z?


¿Puede agregar la razón por la que desea hacerlo a través de 7-zip cuando tar puede manejarlo con más elegancia?
bagavadhar

Respuestas:


3

Con 7zip, debe ejecutar el comando dos veces, una para descomprimir y otra para extraer. El formato del archivo tar es solo un "fajo" de todo lo que está atascado de extremo a extremo. Luego, todo el archivo tar se comprime usando varios algoritmos de compresión, en su ejemplo bzip. Básicamente, el archivo resultante tiene dos capas. Cuando "extrae" la capa bzip, obtiene un archivo tar, luego, cuando extrae el archivo tar, obtiene un montón de archivos individuales.

7zip no maneja varias capas a la vez, aunque puede manejar ambas capas:

7z x foo.tar.bz2
7z x foo.tar

En realidad, las herramientas estándar de Unix funcionan de la misma manera:

bunzip2 foo.tar.bz2
tar xf foo.tar

Sin embargo, el tarcomando unix tiene características convenientes que llaman a los pasos secundarios de compresión y descompresión utilizando otro programa antes / después de que maneja la parte tar. Básicamente, el -jargumento llama a bzip2/ bunzip2, simplemente no ves el segundo paso. Asimismo -zllamará gzip/ gunzip, etc.


3

Si bien no puede hacer esto en un comando, puede hacer uso de una tubería de shell para encadenar dos comandos 7z en una línea de comando de la siguiente manera:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar

2

¿Qué tal una versión más corta de la combinación de 7z y alquitrán usando salidas estándar y tuberías?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.