Bash
Tutorial Bash: Comprimir y descomprimir archivos en Bash con tar y gzip
Bash: Aprende a comprimir y descomprimir archivos utilizando tar y gzip en sistemas Unix y Linux. Optimiza la gestión de archivos y mejora la eficiencia del almacenamiento.
Aprende Bash GRATIS y certifícateUso 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
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.
Todas las lecciones de Bash
Accede a todas las lecciones de Bash y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Principales Distribuciones De Linux
Introducción Y Entorno
Instalar Ubuntu En Windows Con Wsl
Introducción Y Entorno
Introducción A Shell Y Bash
Introducción Y Entorno
Comandos De Navegación Pwd, Cd Y Ls
Navegación Y Gestión De Archivos Y Directorios
Manipulación De Archivos Y Directorios
Navegación Y Gestión De Archivos Y Directorios
Comprimir Y Descomprimir Archivos En Bash Con Tar Y Gzip
Navegación Y Gestión De Archivos Y Directorios
Manipulación De Permisos De Archivos Y Directorios Con Chmod, Chown Y Chgrp
Navegación Y Gestión De Archivos Y Directorios
Enlaces Simbólicos Y Duros
Navegación Y Gestión De Archivos Y Directorios
Redirección Y Tuberías
Navegación Y Gestión De Archivos Y Directorios
Gestión De Procesos Con Ps, Htop Y Pgrep
Gestión De Procesos Y Servicios
Gestión De Servicios Con Systemd
Gestión De Procesos Y Servicios
Configuración De Bash
Interacción Con El Sistema
Redes Y Comunicación Con Ifconfig, Ip Y Netstat
Interacción Con El Sistema
Transferencia De Archivos Y Comunicación Remota Con Ssh
Interacción Con El Sistema
Gestión De Paquetes Y Dependencias Y Actualización Del Sistema
Interacción Con El Sistema
Variables Y Tipos De Datos
Sintaxis Y Creación De Scripts En Bash
Operadores
Sintaxis Y Creación De Scripts En Bash
Sintaxis De Control De Flujo
Sintaxis Y Creación De Scripts En Bash
Expresiones Regulares Y Manipulación De Texto
Sintaxis Y Creación De Scripts En Bash
Definición Y Uso De Funciones
Sintaxis Y Creación De Scripts En Bash
En esta lección
Objetivos de aprendizaje de esta lección
- 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.