Cómo usar 7-Zip en la línea de comandos de Linux

7-Zip es un programa de administración y compresión de archivos que tiene variantes de línea de comandos que se adaptan tanto a Windows como a Linux/Mac.

Dado que 7-Zip es un programa de código abierto, cualquiera puede usarlo sin costo alguno. La mayoría del código se publica bajo GNU LGPL. Admite muchos formatos como 7z LZMA2, XZ, ZIP y muchos otros. Sin embargo, solo admite operaciones de desempaquetado para algunos formatos como APFS, AR, EXT, FAt, etc.

¿Qué cubriremos?

En esta guía, veremos algunos ejemplos prácticos del uso de 7-Zip en la línea de comandos de Linux.

Variantes de 7-Zip

Se lanzan dos variaciones de 7-Zip para Linux y macOS:

1) El p7zip, que es una versión Linux de 7-Zip creada por un tercero.
La versión más reciente de p7zip es 16.02. Esa versión ahora está obsoleta.

2) El 7-Zip para Linux/macOS es un paquete nuevo que tiene todas las modificaciones del 7-Zip para Windows más reciente.

Recuerde que p7zip puede ser una mejor opción para implementar las funciones específicas de Linux que la última versión de 7-Zip para Linux.

A pesar de su interfaz de usuario bastante simple, las versiones de la línea de comandos de 7-Zip brindan amplias opciones de configuración a través de los argumentos y las banderas de la línea de comandos que se detallan en las siguientes discusiones.

Instalación de 7-Zip en Ubuntu 20.04

Hay varios archivos de descarga disponibles en el sitio web oficial para instalar 7zip para diferentes sistemas. Por ejemplo, uno puede ver los archivos de diferentes formatos y para diferentes arquitecturas.

Descarguemos un archivo específico de Linux de la versión de consola 7-zip. Además, debe consultar la columna de descripción, si está disponible, para obtener más información sobre un archivo.

Procedamos con el archivo “.tar.xz” para un Linux x86-64-bit (Ubuntu en mi caso). Usemos la herramienta wget para recuperar este archivo:

$ wget https://www.7-zip.org/a/7z2201-linux-x64.tar.xz _ _ _ _ _ _

 
Ahora extraemos el archivo usando el comando tar:

$ tar -xf 7z2201-linux-x64.tar.xz

 
Después de extraer, verá dos archivos: 7zz y 7zzs. Estos dos archivos difieren en términos de vinculación de la biblioteca del sistema.


Alternativamente, también podemos usar la aplicación 7-Zip predeterminada que se proporciona con el repositorio oficial de Ubuntu:

$ sudo apt install p7zip p7zip-full p7zip-rar

 
De esta forma, podemos usar 7-Zip desde cualquier parte del sistema. Sin embargo, es posible que la versión de 7-Zip no sea la última.

Trabajando con 7-Zip

Ahora que descargamos y extrajimos 7-Zip en nuestra máquina Ubuntu, es hora de ver cómo funciona con las opciones de la línea de comandos. Primero comprendamos su sintaxis básica.

La sintaxis de línea de comando estándar que se usa para invocar el 7-Zip es «7z». Sin embargo, también se pueden utilizar “7zz”, “7zr” y “7za”. Luego agregamos los comandos y parámetros de la siguiente manera:

$ 7z < comando >   < flags >   < nombre_archivo_ruta_completa >   < nombre_archivo_ruta_completa >

 
Nota: De manera predeterminada, cuando usa el archivo binario 7-Zip desde la línea de comandos, 7-Zip busca los archivos con los que está trabajando en la misma carpeta que el ejecutable del programa. Por esta razón, antes de iniciar una sesión, debe copiar sus archivos en un directorio de 7-Zip o proporcionar sus rutas completas en los nombres de los archivos.

Tomemos un ejemplo simple para ver cómo funciona. Supongamos que queremos crear un archivo llamado «my_archive». El «mi_archivo» debe contener un archivo «demo.txt» y debe ser un archivo protegido con contraseña.

El comando en este caso es el siguiente:

$ . / 7zz a -p mi_archivo demostración.txt

 
Esto da como resultado un archivo «my_archive.7z» que está protegido con una contraseña. Este contiene un archivo llamado “demo.txt”.

El indicador «-a» agrega el archivo al archivo y «-p» lo protege con contraseña:

1. Listado de archivos dentro del archivo 7z

Aunque este comando debería venir más tarde cuando cree algunos archivos, puede usarlo para enumerar las entradas de los archivos existentes:

La bandera  «-l» nos proporciona el contenido de un archivo. Tomemos como ejemplo un archivo de almacenamiento llamado «mytest.7z». Para listar su contenido, simplemente use el siguiente comando:

$ . / 7zz l mi_archivo.7z

 

2. Comprimir varios archivos

Veamos ahora cómo podemos comprimir varios archivos de una sola vez. Tomemos un directorio de prueba llamado «Proyecto» que actualmente tiene cuatro archivos: archivo1, archivo2, archivo3 y archivo4.

Ahora, para crear el archivo «test.7z» a partir de estos archivos dentro de la misma carpeta, debemos ejecutar el siguiente comando:

$ . / 7zz una prueba *

 

El comodín se asegura de que todos los archivos estén comprimidos. Del mismo modo, también podemos seleccionar los archivos a comprimir en lugar de comprimirlos todos. Por ejemplo, podemos comprimir solo el archivo 1 y el archivo 2 de la siguiente manera:

$ . / 7zz a mi_archivo2.zip archivo1 archivo2

 

3. Extracción de los archivos del archivo

Veamos ahora cómo extraer nuestro archivo y recuperar los archivos. Primero, elimine los archivos sin comprimir ya existentes para evitar confusiones.

La bandera «x» es útil aquí. Solo necesitamos pasar el archivo de almacenamiento de destino como se muestra a continuación:

$ . / 7zz x mi_archivo2.zip

 

Aquí, también podemos usar la bandera «e» para el mismo propósito.

4. Creación de un archivo de formato de archivo personalizado

Hasta ahora, estamos trabajando principalmente con archivos con formato .7z. De manera equivalente, podemos usar la herramienta 7-Zip para crear un archivo .zip, gzip, bzip2 y tar. Vamos a crear un archivo «.bz2» de file1.

$ . / 7zz -tbzip2 archivo3.bz2 archivo1

 

Nota: tenga en cuenta que algunos formatos de archivo, como .xz y .bz2, solo admiten una compresión de un solo archivo a la vez. Sin embargo, para comprimir varios archivos, primero podemos crear un archivo tar. Luego, podemos usar la compresión .bz2 o .xz.

5. Agregar archivos a un archivo existente

Ahora vemos cómo agregar los archivos a un archivo existente. Supongamos que ya creamos un archivo pero luego descubrimos que se deben agregar más archivos. Para esto, podemos actualizar el archivo existente con el indicador «-u» en lugar de crear uno nuevo desde cero.

Agreguemos el «file2» al archivo «archive.7z»:

$ . / 7zz u archivo.7z archivo2

 

6. Eliminar los archivos de un archivo

Continuando, también podemos eliminar algunos archivos desagradables de un archivo. La bandera «-d» nos proporciona esta facilidad, como se ilustra aquí:

$ 7z d prueba4.7z archivo1

 

Conclusión

Cubrimos cómo usar la herramienta 7-Zip en la línea de comandos. Como probablemente haya observado, es bastante simple instalarlo y usarlo en Linux.

Sin embargo, debido a que no guarda el propietario del archivo ni la información del grupo, NO DEBE UTILIZAR 7-Zip para copias de seguridad de Linux/Unix. Si desea utilizar 7-Zip para el almacenamiento o la copia de seguridad a largo plazo, primero debe comprimir sus archivos con tar y luego comprimirlos aún más con 7-Zip.

Siempre puede consultar el sitio web oficial para ver las preguntas frecuentes (FAQ), las páginas de ayuda y las páginas man. Además, la herramienta también tiene una lista de Sourceforge.