Mira la lección en vídeo
Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.
Desbloquear Plan PlusUso de tar para empaquetar y desempaquetar archivos y directorios
El comando tar
(abreviatura de "tape archive") se utiliza en Shell y Bash scripts para empaquetar y desempaquetar archivos y directorios en sistemas operativos basados en Unix, como Linux. Este comando es vital para la gestión de archivos y directorios en entornos de servidores y desarrollo, facilitando la transferencia y almacenamiento de grandes volúmenes de datos.
Para empaquetar archivos y directorios con tar
, se utiliza la opción -c
(create). A continuación, se muestra cómo empaquetar un directorio denominado mi_directorio
en un archivo llamado archivo.tar
:
tar -cvf archivo.tar mi_directorio/
En este comando:
-c
indica que estamos creando un nuevo archivo tar.-v
(verbose) muestra el progreso en la terminal.-f
especifica el nombre del archivo tar a crear.
Para desempaquetar un archivo tar, se utiliza la opción -x
(extract). A continuación, se muestra cómo desempaquetar archivo.tar
en el directorio actual:
tar -xvf archivo.tar
En este comando:
-x
indica que estamos extrayendo los archivos.-v
muestra el progreso en la terminal.-f
especifica el archivo tar a extraer.
Para listar el contenido de un archivo tar sin extraerlo, se utiliza la opción -t
(list):
tar -tvf archivo.tar
En este comando:
-t
indica que estamos listando los archivos contenidos en el archivo tar.-v
muestra el progreso en la terminal.-f
especifica el archivo tar del cual listar el contenido.
Además, tar
permite empaquetar y desempaquetar archivos y directorios en ubicaciones específicas. Por ejemplo, para extraer archivo.tar
en un directorio específico como destino/
, se puede hacer de la siguiente manera:
tar -xvf archivo.tar -C destino/
En este comando:
-C
especifica el directorio de destino donde se extraerán los archivos.
El comando tar
también permite empaquetar y desempaquetar archivos tar comprimidos con gzip (archivos .tar.gz
). Sin embargo, la combinación de tar
con gzip
se tratará en otra sección de esta lección.
Al utilizar tar
en Bash scripts y comandos Linux, es importante considerar las opciones y parámetros adicionales que pueden optimizar su uso, adaptándose a necesidades específicas como la exclusión de ciertos archivos o la preservación de permisos y propiedades de archivos.
Comandos gzip y gunzip para comprimir y descomprimir archivos
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
En Bash y Shell, los comandos gzip
y gunzip
se utilizan para comprimir y descomprimir archivos, respectivamente. Estos comandos son esenciales en la gestión de archivos y directorios en sistemas Linux, permitiendo reducir el tamaño de los archivos para su almacenamiento y transmisión eficiente.
Para comprimir un archivo utilizando gzip
, se emplea la siguiente sintaxis:
gzip nombre_archivo
Este comando reemplazará el archivo original por una versión comprimida con la extensión .gz
. Por ejemplo, para comprimir un archivo llamado mi_archivo.txt
, se haría lo siguiente:
gzip mi_archivo.txt
El resultado será un archivo llamado mi_archivo.txt.gz
. Si se desea mantener el archivo original y crear una copia comprimida, se puede utilizar la opción -k
(keep):
gzip -k mi_archivo.txt
Para descomprimir un archivo comprimido con gzip
, se utiliza el comando gunzip
. La sintaxis básica es:
gunzip nombre_archivo.gz
Por ejemplo, para descomprimir mi_archivo.txt.gz
, se haría lo siguiente:
gunzip mi_archivo.txt.gz
Esto restaurará el archivo original mi_archivo.txt
y eliminará el archivo comprimido .gz
. Si se desea mantener el archivo comprimido y descomprimir una copia, se puede utilizar la opción -k
con gunzip
:
gunzip -k mi_archivo.txt.gz
Ambos comandos permiten trabajar con múltiples archivos a la vez. Para comprimir múltiples archivos, se puede hacer así:
gzip archivo1 archivo2 archivo3
Y para descomprimir múltiples archivos:
gunzip archivo1.gz archivo2.gz archivo3.gz
Además, gzip
y gunzip
soportan la compresión y descompresión de archivos a través de la entrada y salida estándar, lo que permite su uso en pipelines. Por ejemplo, para comprimir el resultado de un comando ls
y guardarlo en un archivo comprimido:
ls | gzip > listado_archivos.gz
Y para descomprimir un archivo y enviar su contenido a otro comando:
gunzip -c listado_archivos.gz | less
En este comando:
-c
hace quegunzip
envíe la salida descomprimida a la salida estándar en lugar de crear un archivo.
También es posible ajustar el nivel de compresión de gzip
especificando directamente un número del 1 al 9 después del guion, sin ninguna letra. Por ejemplo, para una compresión máxima (pero más lenta):
gzip -9 mi_archivo.txt
Y para una compresión mínima (más rápida):
gzip -1 mi_archivo.txt
En este caso:
- -1: Establece el nivel de compresión al más rápido (menor compresión).
- -9: Establece el nivel de compresión al máximo (mayor compresión).
El uso de gzip
y gunzip
en Bash scripts y comandos Linux es una práctica común para la gestión eficiente de archivos, especialmente en entornos de servidores y desarrollo.
Combinación de tar con gzip para crear archivos .tar.gz
Para combinar los comandos tar
y gzip
en Bash y Shell y crear archivos comprimidos con la extensión .tar.gz
, se utiliza una opción específica de tar
que facilita este proceso. Esta combinación es común en la gestión de archivos y directorios en sistemas Linux, permitiendo empaquetar y comprimir grandes volúmenes de datos de manera eficiente, una práctica habitual en Bash scripts y comandos Linux.
La opción -z
de tar
permite comprimir el archivo tar con gzip
en un solo paso. A continuación, se muestra cómo empaquetar y comprimir un directorio llamado mi_directorio
en un archivo denominado archivo.tar.gz
:
tar -czvf archivo.tar.gz mi_directorio/
En este comando:
-c
indica que estamos creando un nuevo archivo tar.-z
especifica que se debe comprimir el archivo utilizandogzip
.-v
(verbose) muestra el progreso en la terminal.-f
especifica el nombre del archivo tar a crear.
Para desempaquetar y descomprimir un archivo .tar.gz
, se utiliza la opción -x
con -z
:
tar -xzvf archivo.tar.gz
En este comando:
-x
indica que estamos extrayendo los archivos.-z
especifica que el archivo está comprimido congzip
.-v
muestra el progreso en la terminal.-f
especifica el archivo tar a extraer.
También es posible especificar un directorio de destino para la extracción utilizando la opción -C
:
tar -xzvf archivo.tar.gz -C destino/
En este comando:
-C
especifica el directorio de destino donde se extraerán los archivos.
Para listar el contenido de un archivo .tar.gz
sin extraerlo, se utiliza la opción -t
con -z
:
tar -tzvf archivo.tar.gz
En este comando:
-t
indica que estamos listando los archivos contenidos en el archivo tar.-z
especifica que el archivo está comprimido congzip
.-v
muestra el progreso en la terminal.-f
especifica el archivo tar del cual listar el contenido.
La combinación de tar
y gzip
también permite usar otras opciones avanzadas para optimizar su uso. Por ejemplo, para excluir ciertos archivos o directorios durante la creación del archivo comprimido, se puede utilizar la opción --exclude
:
tar -czvf archivo.tar.gz mi_directorio/ --exclude=mi_directorio/archivo_excluido
En este comando:
--exclude
especifica los archivos o directorios a excluir.
Otra opción útil es --remove-files
, que elimina los archivos originales después de haberlos empaquetado y comprimido:
tar -czvf archivo.tar.gz mi_directorio/ --remove-files
En este comando:
--remove-files
elimina los archivos originales después de crear el archivo tar comprimido.
El uso de tar
combinado con gzip
en Bash scripts y comandos Linux es esencial para la gestión eficiente de archivos y directorios, especialmente en entornos de servidores y desarrollo, donde la optimización del almacenamiento y la transferencia de datos es crucial.
Aprendizajes de esta lección de Bash
- Comprender cómo empaquetar archivos y directorios utilizando el comando
tar
. - Aprender a descomprimir archivos tar con
tar
. - Listar el contenido de archivos tar sin extraerlos.
- Comprimir y descomprimir archivos utilizando
gzip
ygunzip
. - Realizar compresión y empaquetado simultáneo de archivos con
tar
ygzip
. - Aplicar opciones avanzadas en
tar
ygzip
para optimización de tareas.
Completa este curso de Bash y certifícate
Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs