Skip to content

Compresión en Linux

Para comprimir archivos y carpetas en Linux desde terminal, los métodos más habituales son tar (con o sin compresión) y zip. Aquí te explico cómo comprimir una carpeta, mover el archivo comprimido a un USB y luego descomprimirlo si es necesario.

NOTA: si comprimes vídeos o música perderás calidad.


1. Comprimir con tar (el método más común en Linux)

Section titled “1. Comprimir con tar (el método más común en Linux)”

tar crea un archivo “empaquetado” (.tar) y opcionalmente lo comprime con gzip (.tar.gz) o xz (.tar.xz).

Comprimir carpeta en .tar.gz (más común y rápido)

Section titled “Comprimir carpeta en .tar.gz (más común y rápido)”
Terminal window
tar -czvf nombre_comprimido.tar.gz carpeta_a_comprimir/

Explicación de opciones:

  • -c → crear archivo
  • -z → comprimir con gzip
  • -v → verbose (muestra progreso)
  • -f → especificar nombre del archivo

Comprimir carpeta en .tar.xz (mejor compresión, más lento)

Section titled “Comprimir carpeta en .tar.xz (mejor compresión, más lento)”
Terminal window
tar -cJvf nombre_comprimido.tar.xz carpeta_a_comprimir/
  • -J → comprimir con xz
Terminal window
tar -czvf backup.tar.gz carpeta1/ carpeta2/ archivo.txt

2. Comprimir con zip (compatible con Windows)

Section titled “2. Comprimir con zip (compatible con Windows)”
Terminal window
zip -r nombre_comprimido.zip carpeta_a_comprimir/
  • -r → recursivo (incluye subcarpetas)

Si no tienes zip instalado:

Terminal window
# En Arch/Manjaro
sudo pacman -S zip unzip
# En Debian/Ubuntu
sudo apt install zip unzip

Terminal window
lsblk
# o
fdisk -l

Busca tu USB (ej: /dev/sdb1) y el punto de montaje si ya está montado (ej: /run/media/usuario/USB).

Paso 2: Montar el USB (si no está montado automáticamente)

Section titled “Paso 2: Montar el USB (si no está montado automáticamente)”
Terminal window
# Crear punto de montaje
sudo mkdir -p /mnt/usb
# Montar (reemplaza sdb1 con tu dispositivo)
sudo mount /dev/sdb1 /mnt/usb

Paso 3: Copiar el archivo comprimido al USB

Section titled “Paso 3: Copiar el archivo comprimido al USB”
Terminal window
cp nombre_comprimido.tar.gz /mnt/usb/
# o si prefieres moverlo (borra el original)
mv nombre_comprimido.tar.gz /mnt/usb/
Terminal window
ls -lh /mnt/usb/

Paso 5: Desmontar el USB antes de extraerlo

Section titled “Paso 5: Desmontar el USB antes de extraerlo”
Terminal window
sudo umount /mnt/usb
# o si está montado automáticamente
sudo umount /run/media/usuario/USB

Terminal window
# 1. Ver contenido de la carpeta a comprimir
ls -la documentos/
# 2. Comprimir
tar -czvf documentos_backup.tar.gz documentos/
# 3. Ver tamaño
ls -lh documentos_backup.tar.gz
# 4. Identificar USB
lsblk
# 5. Montar USB (asumiendo que es /dev/sdb1)
sudo mount /dev/sdb1 /mnt/usb
# 6. Copiar al USB
cp documentos_backup.tar.gz /mnt/usb/
# 7. Verificar
ls -lh /mnt/usb/
# 8. Desmontar
sudo umount /mnt/usb

5. Descomprimir (cuando necesites recuperar los archivos)

Section titled “5. Descomprimir (cuando necesites recuperar los archivos)”
Terminal window
tar -xzvf nombre_comprimido.tar.gz
Terminal window
tar -xJvf nombre_comprimido.tar.xz
Terminal window
unzip nombre_comprimido.zip
Terminal window
tar -xzvf nombre_comprimido.tar.gz -C /ruta/destino/
unzip nombre_comprimido.zip -d /ruta/destino/

Ver contenido de un comprimido sin descomprimir

Section titled “Ver contenido de un comprimido sin descomprimir”
Terminal window
# Para .tar.gz
tar -tzvf nombre_comprimido.tar.gz
# Para .zip
unzip -l nombre_comprimido.zip
Terminal window
tar -czvf backup.tar.gz carpeta/ --exclude="carpeta/cache"
Terminal window
zip -er nombre_comprimido.zip carpeta/
# Te pedirá la contraseña

  • Espacio en USB: Verifica que tenga suficiente espacio libre (df -h /mnt/usb)
  • Sistema de archivos FAT32: Si el USB está en FAT32, los archivos no pueden ser mayores a 4GB. Usa split para dividir:
    Terminal window
    tar -czvf - carpeta/ | split -b 3G - backup.tar.gz.part
    Para unir después:
    Terminal window
    cat backup.tar.gz.part* > backup.tar.gz
  • Permisos: Si usas sudo para montar, los archivos copiados serán de root. Para evitarlo, monta con opción uid:
    Terminal window
    sudo mount -o uid=$(id -u),gid=$(id -g) /dev/sdb1 /mnt/usb

Tarea Comando
Comprimir carpeta en .tar.gz tar -czvf archivo.tar.gz carpeta/
Comprimir carpeta en .zip zip -r archivo.zip carpeta/
Ver discos/USBs lsblk
Montar USB sudo mount /dev/sdb1 /mnt/usb
Copiar al USB cp archivo.tar.gz /mnt/usb/
Desmontar USB sudo umount /mnt/usb
Descomprimir .tar.gz tar -xzvf archivo.tar.gz
Descomprimir .zip unzip archivo.zip