Cómo extraer archivos de un archivo .tar.bz2 o .tar.gz en Linux
Aquí encontrará todo lo que necesita saber sobre cómo descomprimir un archivo en Linux
Conclusiones clave
- Los archivos tar son archivos comprimidos que se utilizan en distribuciones de Linux, como Ubuntu. Se pueden extraer usando el comando tar en la terminal.
- Las extensiones .tar.gz y .tar.bz2 indican que los archivos tar se comprimen utilizando el algoritmo de compresión gzip o bzip2.
- La extracción de archivos de un archivo tar se puede realizar utilizando el comando tar con las opciones -x, -v y -z (.gz) o -j (bz2) según el tipo de compresión. Los archivos extraídos se pueden dirigir a un directorio específico usando la opción -C.
Los archivos tar son archivos comprimidos. Los encontrará con frecuencia mientras usa una distribución de Linux como Ubuntu o incluso cuando usa la terminal en macOS. A continuación 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?
Los archivos que tienen una extensión .tar.gz
o .tar.bz2
son archivos comprimidos. Un archivo con solo una extensión .tar
no está comprimido, pero será muy raro.
La porción .tar
de la extensión del archivo significa tarchivo archivo y es la razón por la que ambos tipos de archivos se denominan archivos tar. . Los archivos tar se remontan a 1979, cuando se creó el comando tar
para permitir a los administradores del sistema archivar archivos en cinta. Cuarenta años después, todavía utilizamos el comando tar
para extraer archivos tar en nuestros discos duros. Probablemente alguien en algún lugar todavía esté usando tar
con cinta.
El sufijo de extensión .gz
o .bz2
indica que el archivo se ha comprimido utilizando gzip
o bzip2
. Algoritmo de compresión. El comando tar
funcionará perfectamente con ambos tipos de archivos, por lo que no importa qué método de compresión se haya utilizado, y debería estar disponible en todos los lugares donde tenga un shell Bash. Sólo necesita utilizar las opciones de línea de comando tar
apropiadas.
Vale la pena señalar que todo lo contenido en este artículo también funciona en el subsistema de Windows para Linux, que le permite instalar el shell Bash dentro de Windows 10 o Windows 11, aunque también hay otras formas de abrir archivos tar.gz en Windows.
Tipos de archivos
Extension
DAT·7Z·BZ2·XML·RTF·XLSX·WEBP·EPUB·MP4· M4A· AVI·MOBI·SVG·MP3·REG·PHP·LOG·PPTX·PDF·MPEG·WMA·M4V· AZW·LIT·TAR·TAR.GZ·RAR
Extraer archivos de archivos Tar
Digamos que has descargado dos archivos de partituras. Un archivo se llama ukulele_songs.tar.gz
, el otro se llama guitar_songs.tar.bz2
. Estos archivos están en el directorio de Descargas.
Extraigamos (también llamado ocasionalmente "untar" en lugar de extraer) las canciones de ukelele:
tar -xvzf ukulele_songs.tar.gz
A medida que se extraen los archivos, se enumeran en la ventana del terminal.
Las opciones de línea de comando que utilizamos 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 con el que queremos que trabaje
tar
. 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 archivo tar
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. El sufijo de extensión .bz2
nos indica que ha sido comprimido usando el comando bzip2. En lugar de usar la opción -z
(gzip), usaremos la opción -j
(bzip2) para descomprimir el archivo bz2.
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 opciones de línea de comando que usamos con tar
para el archivo .tar.bz2
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 tar.
Si listamos los archivos en el directorio de Descargas veremos que se ha creado otro directorio llamado Guitar Songs.
Elegir dónde extraer los archivos
Si queremos extraer los archivos a una ubicación distinta al directorio actual, podemos especificar un directorio de destino usando la opción -C
(directorio especificado).
tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Si buscamos en nuestro directorio Documentos/Canciones, veremos que se ha creado el directorio 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 hacer que tar
extraiga los archivos en él con un solo comando, puede hacerlo de la siguiente manera:
mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/
La opción -p
(padres) hace que mkdir
cree los directorios principales necesarios, asegurando que se cree el directorio de destino.
Mirando el interior de los archivos Tar antes de extraerlos
Hasta ahora hemos dado un acto de fe y extraído los archivos sin ser vistos. Quizás quieras mirar antes de saltar. Puede revisar el contenido de un archivo tar
antes de extraerlo utilizando la opción -t
(lista). Generalmente es conveniente canalizar la salida a través del comando less
.
tar -tf ukulele_songs.tar.gz | less
Observe que no necesitamos usar la opción -z
para enumerar los archivos. Solo necesitamos agregar la opción -z
cuando extraemos archivos de un archivo .tar.gz
. Del mismo modo, no necesitamos la opción -j
para enumerar los archivos en un archivo tar.bz2
.
Al desplazarnos por el resultado, podemos ver que todo lo que hay 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, utilice el siguiente comando. Tenga en cuenta que la ruta está entre comillas porque 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 utilizando comodines, donde *
representa cualquier cadena de caracteres y ?
representa cualquier carácter individual. El uso de comodines requiere el uso de la opción --wildcards
.
tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"
Extraer archivos sin extraer directorios
Si no desea que la estructura del directorio en el archivo tar se vuelva a crear en su disco duro, use la opción --strip-components
. La opción --strip-components
requiere 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 ukelele dentro del archivo tar no se crea en el disco duro. Los archivos y directorios que se habrían extraído en ese directorio se extraen en el directorio de destino.
tar -xvzf ukulele_songs.tar.gz --strip-components=1
Sólo hay dos niveles de anidamiento 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 crea ningún otro directorio.
tar -xvzf ukulele_songs.tar.gz --strip-components=2
Si observa la página de manual de Linux, verá que tar
tiene que ser un buen candidato para el título de "comando que tiene más opciones de línea de comando". Afortunadamente, para permitirnos extraer archivos de archivos .tar.gz
y tar.bz2
con un buen grado de control granular, solo necesitamos recordar algunas de estas opciones. .
Linux Commands | ||
Files | tar·pv·cat·tac·chmod·grep ·diff·sed·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold·uniq·journalctl·tail·stat·ls·fstab·echo·less·chgrp·chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync·df·gpg·vi·nano·mkdir·du·ln·patch·convert·rclone·shred·srm·scp·gzip·chattr·cut·find·umask·wc· tr | |
Processes | alias·screen·top·nice·renice·progress·strace·systemd·tmux·chsh·history·at·batch·free·which·dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo·su·time·groupadd·usermod·groups·lshw·shutdown·reboot·halt·poweroff·passwd·lscpu·crontab·date·bg·fg·pidof·nohup·pmap | |
Networking | netstat·ping·traceroute·ip·ss·whois·fail2ban·bmon·dig·finger·nmap·ftp·curl·wget·who·whoami·w·iptables·ssh-keygen·ufw·arping·firewalld |