18 de Octubre, 2004

Manejando ficheros tar comprimidos con bzip2

Puede parecer una obviedad, pero no lo es tanto: ¿cómo manejamos un fichero tar comprimido con bzip2?

Lo más normal es que usemos gzip para la compresión, con lo que recurrimos a la opción z de tar:

$ tar xvfz fichero.tar.gz

Esto extrae (x) los contenidos del tarball (así se llaman los ficheros tar en realidad ;)), mostrando el proceso en pantalla (v), descomprimiendo con gzip (z), el fichero (f) indicado.

Esto más o menos lo hacemos todos.

El tema de bzip2 no está tan claro. Este es un compresor más potente que el tradicional gzip (que ha ido a sustituir como estándar al compress original de UNIX; ficheros con extensión Z), pero menos extendido. De hecho en muchos sistemas no se instala por defecto.

La forma de procesarlo puede variar. Lo que alguna vez probablemente hemos hecho todos es:

$ bunzip2 fichero.tar.bz2
$ tar xvf fichero.tar

Lo que nos obliga a descomprimir el tarball a disco, que a veces puede ser mala idea (lo tenemos comprimido, descomprimido y luego desenpaquetado... pudiendo ocupar mucho espacio).

Otra opción sería saltarnos el tarball ya descomprimido:

$ bzcat fichero.tar.bz2 | tar xvf -

No hemos indicado la x en el comando tar y hemos empleado el guión (-) para que tar sepa que tiene que tomar los datos a desempaquetar de su entrada estándar. El pipe (|) hace que la salida de bzcat pase a ser la entrada de tar, ahorrándonos un fichero intermedio.

Y para terminar, si usamos GNU tar en una versión moderna (1.13.10+), podemos emplear la opción j :P:

$ tar xvfj fichero.tar.bz2

Esta opción hace que el comando sea más corto, pero puede que no lo encontremos en todos los sistemas, así que no viene mal conocer la alternativa anterior.

Anotación por Juan J. Martínez.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.