Shell Bash en el concepto de escritorio de Unity

Cómo extraer archivos de un archivo .tar.gz o .tar.bz2 en Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

Los archivos tar son archivos comprimidos. Los encontrará con frecuencia mientras usa una distribución de Linux como Ubuntu o incluso usa el terminal en macOS. Aquí se explica cómo extraer (o descomprimir) el contenido de un archivo tar, también conocido como tarball.

¿Qué significan .tar.gz y .tar.bz2?

Archivos que tienen un .tar.gz o un .tar.bz2 son archivos comprimidos. Un archivo con solo uno .tar la extensión no está comprimida, pero estos serán muy raros.

los .tar parte de la extensión del archivo significa tmono Arkansascebolletas, y esta es la razón por la que estos dos tipos de archivos se denominan archivos tar. Los archivos tar se remontan a 1979, cuando el tar El comando se creó para permitir a los administradores del sistema archivar archivos en cinta. Cuarenta años después, todavía usamos el tar comando para extraer los archivos tar a nuestros discos duros. Alguien en alguna parte probablemente todavía esté usando tar con cinta adhesiva.

los .gz Dónde .bz2 El sufijo de extensión indica que el archivo fue comprimido, usando el gzip Dónde bzip2 algoritmo de compresión. los tar El comando funcionará bien con ambos tipos de archivos, por lo que no importa qué método de compresión use, y debería estar disponible en cualquier lugar donde tenga un shell Bash. Solo necesitas usar el bono tar opciones de la línea de comandos.

Extraer archivos de archivos tar

Digamos que descargó dos archivos de partituras. Un archivo se llama ukulele_songs.tar.gz , el otro se llama guitar_songs.tar.bz2. Estos archivos se encuentran en el directorio de Descargas.

Dos archivos tar en el directorio de descargas

Extraigamos las canciones del ukelele:

tar -xvzf ukulele_songs.tar.gz

A medida que se extraen los archivos, se enumeran en la ventana de la terminal.

Extrae todos los archivos del archivo tar

Las opciones de línea de comando que usamos son:

  • -X: Extraer, recuperar archivos del archivo tar.
  • -v: Detallado, enumera los archivos a medida que se extraen.
  • -z: Gzip, use gzip para descomprimir el archivo tar.
  • -F: Archivo, el nombre del archivo tar que queremos tar trabajar con. Esta opción debe ir seguida del nombre del archivo tar.

Enumere los archivos en el directorio con ls y verá que se ha creado un directorio llamado Ukulele Songs. Los archivos extraídos se encuentran en este directorio. ¿De dónde viene este repertorio? Estaba contenido en el tar archivo, y se extrajo con los archivos.

Directorio de canciones de ukelele creado en el directorio de descargas

Ahora extraigamos las canciones de guitarra. Para hacer esto, usaremos casi exactamente el mismo comando que antes, pero con una diferencia importante. los .bz2 el sufijo de extensión nos dice que fue comprimido usando el comando bzip2. En lugar de usar el-z (gzip), usaremos la opción -j (bzip2).

tar -xvjf guitar_songs.tar.bz2

Extraiga el archivo tar de las canciones de guitarra en la carpeta Descargas

Una vez más, los archivos se enumeran en la terminal a medida que se extraen. Para ser claros, las opciones de línea de comando que usamos con tar para el .tar.bz2 archivo fueron:

  • -X: Extraer, recuperar archivos del archivo tar.
  • -v: Detallado, enumera los archivos a medida que se extraen.
  • -j: Bzip2, use bzip2 para descomprimir el archivo tar.
  • -F: Archivo, nombre del archivo tar con el que queremos que trabaje.

Si listamos los archivos en el directorio de descarga, veremos que se ha creado otro directorio llamado Guitar Songs.

Directorio de canciones de guitarra creado en el directorio de descargas

Elija dónde extraer los archivos

Si queremos extraer los archivos a una ubicación que no sea el directorio actual, podemos especificar un directorio de destino usando el -C (directorio especificado).

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/

Mirando en nuestro directorio Documents / Songs, veremos que se ha creado el directorio Guitar Songs.

Directorio de canciones de guitarra creado en el directorio Documentos / Canciones

Tenga en cuenta que el directorio de destino ya debe existir, tar no lo creará si no está presente. Si necesita crear un directorio y tener tar extraer los archivos en un comando, puede hacerlo de la siguiente manera:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

los -p (padres) opción causas mkdir para crear todos los directorios principales necesarios, asegurándose de que se crea el directorio de destino.

Mire dentro de los archivos tar antes de extraerlos

Hasta ahora, hemos hecho un acto de fe y hemos extraído los archivos sin verlos. Es posible que desee mirar antes de saltar. Puede ver el contenido de un tar archivo antes de extraerlo con el -t opción (lista). Generalmente es conveniente dirigir la salida a través del less pedido.

tar -tf ukulele_songs.tar.gz | less

Tenga en cuenta que no es necesario utilizar el -z opción para listar archivos. Solo necesitamos agregar el -z opción cuando extraemos archivos de una .tar.gz archivar. Asimismo, no necesitamos -j opción para listar archivos en una tar.bz2 archivar.

Contenido del archivo tar transmitido por less

Al desplazarnos por la salida, podemos ver que todo el archivo tar está contenido en un directorio llamado Ukulele Songs, y en ese directorio hay archivos y otros directorios.

Segunda vista del contenido del archivo tar transmitido por less

Podemos ver que el directorio Ukulele Songs contiene directorios llamados Random Songs, Ramones y Possibles.

Para extraer todos los archivos de un directorio a un archivo tar, use el siguiente comando. Tenga en cuenta que la ruta está rodeada de comillas porque hay espacios en la ruta.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"

Extrayendo una sola carpeta del archivo tar

Para extraer un solo archivo, especifique la ruta y el nombre del archivo.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

Extraer un solo archivo de un archivo tar

Puede extraer una selección de archivos utilizando comodines, donde * representa cualquier cadena y ? representa cualquier carácter. El uso de comodines requiere el uso de la --wildcards opción.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

Extrae canciones de alquitrán con comodines

Extraer archivos sin extraer directorios

Si no desea que la estructura de directorios del archivo tar se vuelva a crear en su disco duro, use el --strip-components opción. los --strip-components La opción requiere una configuración numérica. El número representa el número de niveles de directorio que se deben ignorar. Los archivos de los directorios omitidos aún se extraen, pero la estructura del directorio no se replica en su disco duro.

Si especificamos --strip-components=1 con nuestro archivo tar de ejemplo, el directorio de canciones de Ukulele más alto en el archivo tar no se crea en el disco duro. Los archivos y directorios que se habrían extraído en este directorio se extraen en el directorio de destino.

tar -xvzf ukulele_songs.tar.gz --strip-components=1

Extraiga archivos del archivo tar con --strip-components = 1

Solo hay dos niveles de anidación de directorios en nuestro archivo tar de ejemplo. Entonces, si usamos --strip-components=2, todos los archivos se extraen al directorio de destino y no se crean más directorios.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Extraiga archivos del archivo tar con --strip-components = 2

Si está buscando en Linux página man verás eso tar debe ser un buen candidato para el título de «comando con la mayoría de las opciones de línea de comando». Afortunadamente, para permitirnos extraer archivos de .tar.gz y tar.bz2 archivos con un buen grado de control granular, solo necesitamos recordar algunas de estas opciones.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas