Los archivos tar son archivos comprimidos. Los encontrará muchas veces mientras utiliza una distribución de Linux como Ubuntu o inclusive mientras utiliza el terminal en macOS. A continuación, se explica cómo extraer (o descomprimir) el contenido de un archivo tar, además conocido como tarball.
¿Qué significan .tar.gz y .tar.bz2?
Archivos que disponen un .tar.gz
o un .tar.bz2
extensión son archivos comprimidos. Un archivo con solo un .tar
la extensión no está comprimida, pero serán muy raras.
los .tar
parte de la extensión del archivo significa tmono Arkansaschive, y es el motivo por la que ambos tipos de archivos se denominan archivos tar. Los archivos de alquitrán 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, aún estamos usando el tar
comando para extraer archivos tar en nuestros discos duros. Alguien en alguna parte probablemente aún esté usando tar
con cinta.
los .gz
o .bz2
El sufijo de extensión indica que el archivo ha sido comprimido, usando el gzip
o bzip2
algoritmo de compresión. los tar
El comando funcionará a la perfección con ambos tipos de archivo, por lo que no importa qué método de compresión se haya utilizado, y debería estar disponible en cualquier lugar donde tenga un shell Bash. Solo necesita utilizar el apropiado tar
opciones de la línea de comandos.
Extraer archivos de archivos Tar
Digamos que ha descargado 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.
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.
Las alternativas de línea de comando que usamos son:
- -X: Extraer, recuperar los 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 están en ese directorio. ¿De dónde vino este directorio? Estaba contenido en el tar
archivo y se extrajo junto con los archivos.
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 se ha comprimido usando el comando bzip2. En lugar de utilizar el-z
(gzip), usaremos la -j
(bzip2) opción.
tar -xvjf guitar_songs.tar.bz2
Una vez más, los archivos se enumeran en la terminal a medida que se extraen. Para ser claros, las alternativas de línea de comando que usamos con tar
Para el .tar.bz2
archivo fueron:
- -X: Extraer, recuperar los 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 Descargas veremos que se ha creado otro directorio llamado Guitar Songs.
Seleccionar 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) opción.
tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Mirando en nuestro directorio de Documentos / Canciones, veremos que se ha creado el directorio de Canciones de Guitarra.
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
extraiga los archivos en un solo comando, puede hacerlo de la próxima 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 los directorios principales necesarios, asegurándose de que se crea el directorio de destino.
Mirar dentro de los archivos de alquitrán antes de extraerlos
Hasta ahora, hemos hecho un acto de fe y hemos extraído los archivos sin ser vistos. Es factible que desee mirar antes de saltar. Puede revisar el contenido de un tar
archivo antes de extraerlo usando el -t
opción (lista). Por lo general, es conveniente canalizar la salida a través del less
mando.
tar -tf ukulele_songs.tar.gz | less
Tenga en cuenta que no es necesario usar el -z
opción para listar los archivos. Solo necesitamos agregar el -z
opción cuando estamos extrayendo archivos de un .tar.gz
expediente. De la misma forma, no necesitamos el -j
opción para listar los archivos en una tar.bz2
expediente.
Al desplazarnos por la salida, podemos ver que todo en el archivo tar se encuentra dentro de un directorio llamado Ukulele Songs, y dentro de ese directorio, hay archivos y otros directorios.
Podemos ver que el directorio Ukulele Songs contiene directorios llamados Random Songs, Ramones y Possibles.
Para extraer todos los archivos de un directorio dentro de un archivo tar, use el siguiente comando. Tenga en cuenta que la ruta está entre comillas debido a que hay espacios en la ruta.
tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
Para extraer un solo archivo, proporcione la ruta y el nombre del archivo.
tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"
Puede extraer una selección de archivos usando comodines, donde *
representa cualquier cadena de caracteres y ?
representa cualquier carácter individual. El uso de comodines necesita el uso de --wildcards
opción.
tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"
Extraer archivos sin extraer directorios
Si no desea que la estructura de directorios en el archivo tar se vuelva a crear en su disco duro, use el --strip-components
opción. los --strip-components
La opción necesita un parámetro numérico. El número representa cuántos niveles de directorios se deben ignorar. Los archivos de los directorios ignorados 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 superior de canciones de Ukulele dentro del archivo tar no se crea en el disco duro. Los archivos y directorios que se habrían extraído a ese directorio se extraen en el directorio de destino.
tar -xvzf ukulele_songs.tar.gz --strip-components=1
Solo hay dos niveles de anidación de directorios dentro de nuestro archivo tar de ejemplo. Entonces, si usamos --strip-components=2
, todos los archivos se extraen en el directorio de destino y no se crean otros directorios.
tar -xvzf ukulele_songs.tar.gz --strip-components=2
Si nos fijamos en Linux página man verás eso tar
tiene que ser un buen candidato para el título de «comando con la mayor cantidad de alternativas de línea de comando». Por suerte, 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.
setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);