Tutoriel Linux

Crear un archivo 7z en Linux cuando un ZIP se queda corto

Débutant4 min de lecture

Un ZIP es suficiente para intercambiar algunos documentos. Tan pronto como un directorio se vuelve pesado, es necesario limitar el tamaño del archivo o ocultar los nombres que contiene, el formato 7z se vuelve más interesante. Lo utilizaría para preparar un lote para transferir o archivar una copia de trabajo, no como única copia de seguridad.

El procedimiento consta de cuatro controles: identificar el comando instalado, crear el archivo sin borrar las fuentes, leer su contenido y luego probarlo antes de eliminar o enviar cualquier cosa.

Tux organiza los folders en un archivo seguro para ilustrar la creación de un archivo 7z en Linux
Un archivo 7z se verifica antes de la transferencia o eliminación de los archivos fuente.

Verificar el comando y preparar el directorio

En Debian o Ubuntu recientes, el paquete 7zip generalmente proporciona 7zz. Instancias más antiguas a veces utilizan p7zip-full y el comando 7z. Comienza por mirar lo que está realmente disponible:

command -v 7zz || command -v 7z
7zz i 2>/dev/null || 7z i

Si ningún comando responde, instala el paquete adecuado para tu distribución. En Debian o Ubuntu, comienza por actualizar el índice y luego instala 7zip:

sudo apt update
sudo apt install 7zip

Trabaja desde el directorio padre del directorio a archivar. Evitarás un archivo lleno de rutas absolutas y verás de inmediato el volumen relevante. También controla el espacio disponible en el destino:

du -sh proyecto
 df -h .

Crear un archivo 7z manteniendo los archivos fuente

Colócate en el directorio que contiene proyecto, y luego crea el archivo. El comando a agrega los archivos. No elimina el directorio fuente, a menos que le pidas explícitamente otro comportamiento.

7zz a respaldo-proyecto.7z proyecto/

Con el antiguo comando, simplemente reemplaza 7zz por 7z. El nivel predeterminado es adecuado en la mayoría de los casos. Para priorizar la velocidad en un servidor ya cargado, añade -mx=3. El nivel -mx=9 consume más CPU y no siempre reduce lo suficiente el tamaño como para justificar la espera.

Para dividir el archivo en volúmenes de 2 Gio destinados a un medio o envío limitado, utiliza -v2g:

7zz a -v2g respaldo-proyecto.7z proyecto/

Conserva todos los archivos .001, .002 y siguientes en el mismo directorio. El primer volumen sirve para la prueba y extracción.

Cifrar el archivo sin exponer la contraseña

Evita -pmotdepasse directamente en la línea de comando: Bash a menudo lo guarda en el historial y puede aparecer en la lista de procesos. Pasa -p sin valor para que 7-Zip pida el secreto de manera interactiva. Añade -mhe=on para cifrar también los nombres de archivos.

7zz a -p -mhe=on respaldo-proyecto-privado.7z proyecto/

Un archivo cifrado no reemplaza una copia de seguridad. Pierde la contraseña o la clave de almacenamiento, y el contenido se vuelve inutilizable. Para secretos empresariales, mantén una política de cifrado y recuperación distinta de este comando puntual.

Listar, probar y luego extraer en una copia

Antes de una transferencia o limpieza, primero controla el contenido. l lista los archivos, t verifica la integridad del archivo. Estos dos comandos evitan descubrir un archivo incompleto después de haber eliminado el directorio original.

7zz l respaldo-proyecto.7z
7zz t respaldo-proyecto.7z

Luego prueba una extracción en un directorio vacío. Mantén el directorio fuente intacto hasta esta etapa:

mkdir -p /tmp/prueba-7z
7zz x respaldo-proyecto.7z -o/tmp/prueba-7z
find /tmp/prueba-7z -maxdepth 2 -type f | head

Para una transferencia importante, también calcula un hash del archivo y compáralo después de la copia:

sha256sum respaldo-proyecto.7z > respaldo-proyecto.7z.sha256
sha256sum -c respaldo-proyecto.7z.sha256

El formato 7z sirve para empaquetar y comprimir. Para una copia de seguridad regular con restauración comprobada, también necesita un destino independiente y una rotación. Si solo necesitas crear o extraer un archivo estándar de Unix, la guía tar en Linux sigue siendo más adecuada para flujos habituales.

sudo apt update && sudo apt upgrade