Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
Este manual forma parte de una secuencia didáctica que incluye ejercicios prácticos en clase. Se recomienda seguir los procedimientos al pie de la letra para un aprendizaje efectivo. En varios ejemplos se utilizará el carácter ~ (tilde), que representa una forma abreviada de referirse al directorio de inicio del usuario actual.
Los formatos de compresión y archivado son herramientas fundamentales para la gestión eficiente de archivos en sistemas Linux. A continuación, se presenta una breve descripción de los formatos que se abordarán:
.tar.gz.Ingrese al sistema como el usuario root y asegúrese de que estén instalados los paquetes tar, zip, unzip, gzip, bzip2, xz y zstd.
Ejecute lo siguiente si utiliza una distribución derivada de RHEL como AlmaLinux, Rocky Linux o Fedora:
dnf -y install tar zip unzip gzip bzip2 xz zstd
Ejecute lo siguiente si utiliza ALDOS:
yum -y install tar zip unzip gzip bzip2 xz zstd
Al terminar, cierre la sesión del usuario root, ejecutando:
exit
Ingrese nuevamente al sistema como usuario regular (por ejemplo, fulano).
A fin de disponer de datos con los cuales experimentar, copie el directorio /usr/share/pixmaps dentro del directorio de inicio del usuario utilizado.
cp -a /usr/share/pixmaps ~/
Consulte el manual de zip ejecutando:
man 1 zip
Consulte el manual de unzip ejecutando:
man 1 unzip
Genere un archivo .zip ejecutando:
zip -r foo.zip pixmaps/
Para mostrar la lista del contenido del archivo foo.zip, ejecute:
unzip -l foo.zip
Extraiga el contenido del archivo foo.zip dentro del directorio ~/ejemplos1/, ejecutando:
unzip foo.zip -d ~/ejemplos1/
Si la salida le pregunta si desea sobrescribir los archivos existentes, responda afirmativamente a todo pulsando la letra A (sobrescribir todo) y la tecla ENTER.
Extraiga el contenido del archivo foo.zip dentro del mismo directorio, pero sólo extrayendo los archivos del primer nivel con extensión *.png:
unzip foo.zip -d ~/ejemplos1/ *.png
Extraiga el contenido del archivo foo.zip dentro del mismo directorio, pero sólo extrayendo los archivos del segundo nivel con extensión *.png:
unzip foo.zip -d ~/ejemplos1/ */*.png
Consulte el manual de tar ejecutando:
man 1 tar
Genere un archivo .tar (sin compresión) ejecutando:
tar cf foo.tar pixmaps/
Para mostrar la lista del contenido del archivo foo.tar, ejecute:
tar tvf foo.tar
Extraiga el contenido del archivo foo.tar dentro del directorio ~/ejemplos1/:
tar xvf foo.tar -C ~/ejemplos1/
Extraiga el contenido del archivo foo.tar dentro del mismo directorio, pero sólo extrayendo los archivos con extensión *.png:
tar xvf foo.tar -C ~/ejemplos1/ --wildcards '*.png'
Genere un archivo .tar.gz (con compresión GZIP) ejecutando:
tar zcf foo.tar.gz pixmaps/
Para mostrar la lista del contenido del archivo foo.tar.gz, ejecute:
tar ztvf foo.tar.gz
Extraiga el contenido del archivo foo.tar.gz dentro del directorio ~/ejemplos1/:
tar zxvf foo.tar.gz -C ~/ejemplos1/
Extraiga el contenido del archivo foo.tar.gz dentro del mismo directorio, pero sólo extrayendo los archivos con extensión *.png:
tar zxvf foo.tar.gz -C ~/ejemplos1/ --wildcards '*.png'
Genere un archivo .tar.bz2 (con compresión BZip2) ejecutando:
tar jcf foo.tar.bz2 pixmaps/
Para mostrar la lista del contenido del archivo foo.tar.bz2, ejecute:
tar jtvf foo.tar.bz2
Extraiga el contenido del archivo foo.tar.bz2 dentro del directorio ~/ejemplos1/:
tar jxvf foo.tar.bz2 -C ~/ejemplos1/
Extraiga el contenido del archivo foo.tar.bz2 dentro del mismo directorio, pero sólo extrayendo los archivos con extensión *.png:
tar jxvf foo.tar.bz2 -C ~/ejemplos1/ --wildcards '*.png'
Genere un archivo .tar.xz (con compresión XZ) ejecutando:
tar Jcf foo.tar.xz pixmaps/
Para mostrar la lista del contenido del archivo foo.tar.xz, ejecute:
tar Jtvf foo.tar.xz
Extraiga el contenido del archivo foo.tar.xz dentro del directorio ~/ejemplos1/:
tar Jxvf foo.tar.xz -C ~/ejemplos1/
Extraiga el contenido del archivo foo.tar.xz dentro del mismo directorio, pero sólo extrayendo los archivos con extensión *.png:
tar Jxvf foo.tar.xz -C ~/ejemplos1/ --wildcards '*.png'
El formato ZSTD (Zstandard) es un algoritmo de compresión moderno que ofrece una excelente relación entre velocidad y tasa de compresión. Tras el incidente de seguridad en XZ Utils de 2024, muchos proyectos han considerado adoptar ZSTD como alternativa segura y eficiente.
Genere un archivo .tar.zst (con compresión Zstandard) ejecutando:
tar --zstd -cf foo.tar.zst pixmaps/
Para mostrar la lista del contenido del archivo foo.tar.zst, ejecute:
tar --zstd -tf foo.tar.zst
Extraiga el contenido del archivo foo.tar.zst dentro del directorio ~/ejemplos1/:
tar --zstd -xf foo.tar.zst -C ~/ejemplos1/
Extraiga el contenido del archivo foo.tar.zst dentro del mismo directorio, pero sólo extrayendo los archivos con extensión *.png:
tar --zstd -xf foo.tar.zst -C ~/ejemplos1/ --wildcards '*.png'
Por lo general, los respaldos se realizan sin compresión para lograr mayor velocidad y consumir menos recursos del sistema. La compresión se reserva para cuando el espacio de almacenamiento es limitado, como en unidades de cinta o discos con capacidad reducida.
Existen tres tipos principales de estrategias de respaldo:
Un respaldo completo se puede realizar con tar, utilizando las opciones cpf (crear, preservar permisos, definir archivo), el nombre del archivo .tar, la opción -g (para crear un archivo de control incremental en el formato GNU) y un archivo con extensión *.snar. Este último almacena metadatos sobre lo que se ha respaldado, permitiendo que los respaldos posteriores sean incrementales.
Cambie al usuario root. A partir de este paso sólo podrá realizar los procedimientos con privilegios de root.
su -l
Genere el directorio /var/respaldos ejecutando:
mkdir /var/respaldos
En el siguiente ejemplo se creará un respaldo completo del directorio /usr/share/pixmaps, guardando los archivos de datos y el archivo de control incremental dentro de /var/respaldos.
tar cpf /var/respaldos/completo.tar -g /var/respaldos/registro.snar /usr/share/pixmaps
Para crear un respaldo incremental, se define un nuevo archivo de salida utilizando el mismo archivo *.snar.
tar cpf /var/respaldos/incremental-1.tar -g /var/respaldos/registro.snar /usr/share/pixmaps
Ejecute lo siguiente para crear un segundo respaldo incremental:
tar cpf /var/respaldos/incremental-2.tar -g /var/respaldos/registro.snar /usr/share/pixmaps
Ejecute lo siguiente para crear un tercer respaldo incremental:
tar cpf /var/respaldos/incremental-3.tar -g /var/respaldos/registro.snar /usr/share/pixmaps
Para restaurar los datos, se debe seguir el orden de la cadena de respaldos:
tar xpf /var/respaldos/completo.tar -g /var/respaldos/registro.snar -C /
tar xpf /var/respaldos/incremental-1.tar -g /var/respaldos/registro.snar -C /
tar xpf /var/respaldos/incremental-2.tar -g /var/respaldos/registro.snar -C /
tar xpf /var/respaldos/incremental-3.tar -g /var/respaldos/registro.snar -C /
Los respaldos también pueden dividirse en múltiples volúmenes cuando el espacio en las unidades de almacenamiento es limitado. Para ello, se añaden las opciones -M (indicar múltiples volúmenes) y -L (definir el tamaño de cada volumen en bytes).
El siguiente ejemplo es meramente hipotético. Carece de sentido realizarlo sin una unidad de almacenamiento externa montada, por ejemplo, en /mnt/DISCO. Se incluye sólo con fines demostrativos.
Asumiendo que la unidad externa está montada en /mnt/DISCO/ y se desean crear volúmenes de 4 GiB (4,194,304 bytes):
tar cpf /mnt/DISCO/parte01.tar -g /mnt/DISCO/registro.snar -M -L 4194304 /usr/share/pixmaps
tar cpf /mnt/DISCO/parte02.tar -g /mnt/DISCO/registro.snar -M -L 4194304 /usr/share/pixmaps
tar cpf /mnt/DISCO/parte03.tar -g /mnt/DISCO/registro.snar -M -L 4194304 /usr/share/pixmaps
tar cpf /mnt/DISCO/parte04.tar -g /mnt/DISCO/registro.snar -M -L 4194304 /usr/share/pixmaps
La restauración de un respaldo multi-volumen requiere la opción -M en cada mandato:
tar xpf /mnt/DISCO/parte01.tar -g /mnt/DISCO/registro.snar -M -C /
tar xpf /mnt/DISCO/parte02.tar -g /mnt/DISCO/registro.snar -M -C /
tar xpf /mnt/DISCO/parte03.tar -g /mnt/DISCO/registro.snar -M -C /
tar xpf /mnt/DISCO/parte04.tar -g /mnt/DISCO/registro.snar -M -C /
Al terminar los procedimientos, cierre la sesión de root.
exit
Este manual es el cuarto de una serie de cinco ejercicios prácticos. Para continuar con el siguiente tema de la secuencia, proceda con el documento titulado Gestión de procesos y trabajos.