Aprenda sobre los comandos tar para comprimir y descomprimir archivos en terminal Linux. A continuación hay una lista de opciones del uso de tar con varios ejemplos.
Tar es una herramienta de línea de comandos utilizada para crear y manipular archivos de almacenamiento en sistemas Linux y Unix. Tar puede extraer desde tar, pax, cpio, zip, jar, ar, imágenes ISO 9660 y por supuesto, puede crear los archivos respectivos.
A continuación hay una lista de opciones de tar (Tape ARchiver) que son usadas comúnmente:
Opción | Descripción |
---|---|
-j | Se utiliza para comprimir el archivo a través de bzip2. |
-v | Ejecuta el comando en modo detallado para mostrar el progreso del archivo. |
-f | Especifica el nombre del archivo. |
-W | Se utiliza para verificar un archivo comprimido. |
-z | Comprime un archivo a través de la herramienta gzip. |
-t | Se usa para visualizar el contenido del archivo. |
-c | Crea un nuevo archivo que contiene los elementos especificados. |
-r | Usado para agregar o actualizar archivos o directorios al archivo existente. |
-u | Como -r, pero las nuevas entradas se agregan solo si tienen una fecha de modificación más nueva que la entrada correspondiente en el archivo. |
-x | Extrae el archivo de almacenamiento en el disco. |
Ahora veamos a tar en acción a través de ejemplos. No obstante, es importante recordar los sufijos de archivos equivalentes:
Corto | Largo |
---|---|
.tgz | .tar.gz |
.tbz, .tbz2, .tb2 | .tar.bz2 |
.taz, .tz | .tar.Z |
.tlz | .tar.lz, .tar.lzma |
.txz | .tar.xz |
Empezamos!
1. Crear archivos con tar
1.1. Crear archivo comprimido .tar
Para crear un tar sin comprimir, use la sintaxis del comando:
$ tar -cvf /ruta/archivo.tar /ruta/origen
Donde /ruta/archivo.tar es la ubicación del archivo tar resultante, y /ruta/origen es la ubicación del archivo o directorio que se desea comprimir. Por ejemplo:
tar -cvf /home/alex/EsGeeks.tar /home/alex/EsGeeks
- c – Crea un nuevo archivo EsGeeks.tar.
- v – Muestra detalladamente el progreso del archivo .tar.
- f – Especifica el nombre del archivo.
1.2. Crear un archivo comprimido .gz con tar
Para crear un archivo comprimido gzip, usamos la opción z. La sintaxis del comando para crear un archivo .gz con tar es la siguiente:
$ tar -czvf /ruta/archivo.tgz /ruta/origen
Donde /ruta/archivo.tgz es el archivo comprimido de destino, y /ruta/origen es el directorio o archivo fuente que se va a comprimir.
$ tar -czvf /home/alex/EsGeeks.tgz /home/alex/EsGeeks
1.3. Crear un archivo comprimido .bz2 con tar
La característica bz2 comprime y crea un archivo de almacenamiento inferior al tamaño de gzip. La compresión bz2 toma más tiempo para comprimir y descomprimir archivos en comparación con gzip.
La opción -j se usa para trabajar con archivos .bz2:
$ tar -cjvf /ruta/archivo.tar.bz2 /ruta/archivo
Por ejemplo:
$ tar -cjvf /home/alex/EsGeeks.tar.bz2 /home/alex/EsGeeks
Nota: tar.bz2 y tbz son similares a tb2
1.4. Comprimir archivo en .gz y excluir jpg,flv… del tgz
Utilizamos la opción –exclude de tar para excluir una extensión específica o una lista de extensiones de archivos. La sintaxis es similar a la siguiente:
$ tar -czvf /ruta/archivo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /ruta/archivo
Ejemplo:
$ tar -czvf aEsGeekd2s.tgz --exclude=\*.{jpg,png} /home/alex/EsGeeks
1.5. Usar tar sin ruta absoluta en la compresión
Al usar tar para comprimir archivos y proporcionar una ruta absoluta, un archivo comprimido tendrá una ruta completa en sus metadatos, de modo que cuando extraiga el contenido, estará en directorios similares a la ruta absoluta en la que se comprimió.
Para evitar esto, agregue -C antes de la ruta y .(punto) al final del comando.
$ tar -czvf /ruta/archivo.tgz -C/ruta/archivo .
Ejemplo:
$ tar -czvf /home/alex/EsGeekssinPath.tgz -C/home/alex/EsGeeks .
1.6. Crear archivo tar que sólo empiecen con la letra “A”
$ tar -cvf comprimir.tar A*
El comando anterior comprime solo aquellos archivos, que comienzan con A.
1.7. Agregar un archivo al archivo tar existente
La sintaxis es la siguiente:
$ tar --append --file=archivo.tar nuevoarchivo.extension
El siguiente comando agregará un archivo 2.png en el archivo comprimir.tar
$ tar --append --file=comprimir.tar 2.png
1.8. Concatenar archivos comprimidos con tar
$ tar --concatenate --file=comprimir.tar comprimir2.tar
El comando anterior agrega el contenido del archivo comprimir2.tar al archivo comprimir.tar.
2. Extraer archivo con tar
2.1. Extraer/descomprimir un archivo con tar
Para extraer un archivo que a menudo tiene una extensión .tar, la sintaxis del comando es:
$ tar -xvf /ruta/archivo.tar
Donde /ruta/archivo.tar es la ruta absoluta/relativa a la ubicación del archivo tar.
Por ejemplo:
$ tar -xvf /home/alex/EsGeeks.tar
2.2. Extraer un archivo .gz
Para extraer un archivo .gz, usamos la sintaxis de comando:
$ tar -xzvf /ruta/archivo.tgz
Donde /ruta/archivo.tgz es la ruta absoluta o relativa al archivo comprimido. Por ejemplo:
$ tar -xzvf /home/alex/EsGeeks.tgz
2.3. Extraer un archivo .bz2
La sintaxis del comando para extraer un archivo .bz2 es:
$ tar -xjvf /ruta/archivo.tar.bz2
Por ejemplo:
$ tar -xjvf /home/alex/EsGeeks.tar.bz2
2.4. Extrae un .tar en un directorio específico
Para extraer un archivo tar a un directorio específico, use la opción -C para proporcionar el directorio de destino.
$ tar -xvf /ruta/archivo.tar -C/ruta/destino
Ejemplo:
tar -xvf /home/alex/EsGeeks.tar -C/home/alex/Descargas
2.5. Extraer archivo específico de un archivo comprimido en tar
$ tar --extract -vv --occurrence --file=./archivo.tar archivoespecifico
El comando siguiente extrae el archivo 1.png del archivo EsGeeks.tar.xz:
tar --extract -vv --occurrence --file=./EsGeeks.tar.xz 1.png
2.6. Descomprimir múltiples archivos de tar, tar.gz y tar.bz2
Para extraer o descomprimir múltiples archivos del tipo de archivo tar, tar.gz y tar.bz2 utilice comillas (“”).
$ tar -xvf archivo.tar "archivo 1" "archivo 2"
# tar -zxvf archivo.tar.gz "archivo 1" "archivo 2"
# tar -jxvf archivo.tar.bz2 "archivo 1" "archivo 2"
Por ejemplo, el siguiente comando extraerá “1.png” “2.png” del archivo EsGeeks.tar.xz
$ tar -xvf EsGeeks.tar.xz "1.png" "2.png"
2.7. Extraer un grupo de archivos de tar usando comodines
Para extraer un grupo de archivos basada en comodines, usamos –wildcards.
$ tar -xvf archivo.tar --wildcards '*.extension'
Por ejemplo, para extraer un grupo de todos los archivos cuyo patrón termina .png de un archivo comprimido en tar, tar.gz y tar.bz2, usamos lo siguiente:
$ tar -xvf EsGeeks.tar.xz --wildcards '*.png'
3. Listar contenido de archivo con tar
3.1. Listar el contenido de un archivo .gz
Supongamos que solo quiere ver los contenidos de un archivo .tgz sin extraerlos, entonces use la sintaxis del comando:
$ tar -ztvf /ruta/archivo.tgz
Simplemente reemplace /ruta/archivo.tgz con la ruta correcta de tu archivo .tgz
$ tar -ztvf /home/alex/EsGeeks.tgz
3.2. Listar el contenido de un archivo .bz2
Si desea simplemente ver el contenido del archivo .bz2 sin extraer, use el comando:
$ tar -jtvf /ruta/archivo.tar.bz2
Por ejemplo:
$ tar -jtvf /home/alex/EsGeeks.tar.bz2
3.3. Comprobar el tamaño de un archivo tar, tar.gz y tar.bz2
Para verificar el tamaño de cualquier archivo tar, tar.gz y tar.bz2, use el siguiente comando.
$ tar -czf - archivo.tar | wc -c
$ tar -czf - archivo.tar.gz | wc -c
$ tar -czf - archivo.tar.bz2 | wc -c
Por ejemplo, el siguiente comando mostrará el tamaño del archivo en Kilobytes(KB).
tar -czf - EsGeeks.tar | wc -c
3.4. Cómo preservar enlaces simbólicos usando tar
Use tar -cvhf para preservar enlaces simbólicos al generar un archivo tar (use la opción “h“).
$ tar -cvhf /ruta/archivo.tar
- ¿Utilizas Windows 10? Desde la build 17063, TAR se empaqueta de manera predeterminada, aquí como usarlo.
Tar es uno de los comandos que se utilizan a menudo en el mundo de Linux/Unix, desde la instalación del software, copias de seguridad, intercambio de archivos, hasta el proceso de cifrado/descifrado de archivos. Dominar el uso de tar le ayudará mucho cuando administre sistemas Linux/Unix. ¡Si te ha gustado el artículo, comparte!