En este tutorial, vamos a aprender a instalar y usar 7zip en Ubuntu 18.04/Ubuntu 20.04. 7zip es un archivador de archivos gratuito y de código abierto con un alto índice de compresión. El programa soporta 7z, LZMA2, XZ, ZIP, Zip64, CAB, RAR, ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, la mayoría de las imágenes del sistema de archivos y los formatos DEB. El ratio de compresión en el nuevo formato 7z es un 30-50% mejor que el ratio en el formato ZIP.
La utilidad 7zip es universal y por lo tanto el ejemplo de uso mostrado en este tutorial puede ser utilizado en cualquier distribución de Linux.
Instalación y uso de 7zip en Ubuntu 18.04/Ubuntu 20.04
Instalación del paquete p7zip
Si la utilidad 7zip no está ya instalada en tu sistema, ejecuta el siguiente comando para instalarla.
apt install p7zip p7zip-rar p7zip-full -y
Si está ejecutando otra distribución de Linux como CentOS, Fedora u otras distros basadas en RHEL, ejecute el siguiente comando para instalar 7zip;
NB: Habilite el repositorio EPEL en las distribuciones CentOS/RHEL antes de poder ejecutar este comando.
yum install p7zip p7zip-plugins -y
La utilidad 7zip proporciona tres utilidades de línea de comandos a saber, 7z, 7za y 7zr. La diferencia entre las tres utilidades como se indica en sus páginas de manual es que;
- 7z utiliza plugins para manejar archivos.
- 7za es un ejecutable independiente. 7za maneja menos formatos de archivo que 7z.
- 7zr es un ejecutable independiente. 7zr maneja menos formatos de archivo que 7z. 7zr es una «versión ligera» de 7za que sólo maneja archivos 7z.
Si te gustaría usar 7zip con rar en Ubuntu y distribuciones similares, necesitas instalar el paquete p7zip-rar.
apt install p7zip-rar -y
En este tutorial, discutiremos el uso de una utilidad, 7z, ya que la funcionalidad y el uso es el mismo para las tres utilidades.
Una vez que la instalación se ha completado, se puede verificar ejecutando el siguiente comando;
whereis 7z 7za 7zr
7z: /usr/bin/7z /usr/share/man/man1/7z.1.gz7za: /usr/bin/7za /usr/share/man/man1/7za.1.gz7zr: /usr/bin/7zr /usr/share/man/man1/7zr.1.gz
Sintaxis de la línea de comandos
Ahora que la parte de la instalación está hecha, vamos a echar un vistazo a la sintaxis de la línea de comandos.
La sintaxis de la línea de comandos de 7z es:
7z <command> <base_archive_name>
<los argumentos> se pueden especificar como <interruptor><tarjeta salvaje><filename><list_file>
<switch> se puede especificar en el formato; <símbolo de conmutación><caracteres de conmutación>
<símbolo de conmutación> puede ser ‘/’ | ‘-‘
<list_file> se especifica con el formato; @{filename}
NOTA: Las expresiones dentro de los corchetes son opcionales mientras que las que están dentro de las llaves tienen que ser sustituidas por el usuario.
A continuación se describen brevemente los distintos comandos y switches que se utilizan con el comando 7z;
<Commands>a: Add files to archiveb: Benchmarkd: Delete files from archivee: Extract files from archive (without using directory names)l: List contents of archivet: Test integrity of archiveu: Update files to archivex: eXtract files with full paths
<Switches>-ai]{@listfile|!wildcard}: Include archives-ax]{@listfile|!wildcard}: eXclude archives-bd: Disable percentage indicator-i]{@listfile|!wildcard}: Include filenames-m{Parameters}: set compression Method-o{Directory}: set Output directory-p{Password}: set Password-r: Recurse subdirectories-scs{UTF-8 | WIN | DOS}: set charset for list files-sfx: Create SFX archive-si: read data from stdin-slt: show technical information for l (List) command-so: write data to stdout-ssc: set sensitive case mode-t{Type}: Set type of archive-u: Update options-v{Size}: Create volumes-w: assign Work directory. Empty path means a temporary directory-x]]{@listfile|!wildcard}: eXclude filenames-y: assume Yes on all queries-an: Disable parsing of archive_name
Para obtener una lista completa de switches, consulte las páginas man del 7z, 7zr, 7za o visite la línea de comandos switches.
Ejemplo de uso del comando
Ahora que hemos aprendido sobre algunas opciones de comando y los interruptores de la línea de comandos, veamos algún uso práctico del comando 7z. En estos ejemplos, vamos a utilizar los siguientes archivos y directorios;
lstest-dir tfile4.txt tfile5.txt tfile6.txt
ls test-dir/tfile1.txt tfile2.txt tfile3.txt
Crear un archivo
Para crear un archivo, ejecuta el comando 7z con el formato;
7z a test-archive1.7z tfile4.txt tfile5.txt
7z a archive.xz test-dir/
Nota que, los tipos de archivo soportados para la creación son 7z, XZ, GZIP, TAR, ZIP y BZIP2. Si el archivo comprimido especificado ya existe, «añadirá» los archivos al archivo existente, en lugar de sobrescribirlo.
Extraer el contenido de un archivo
Para desempaquetar un archivo en el directorio actual;
7z e test-archive1.7z -y
Los tipos de archivo soportados son 7z, XZ, GZIP, TAR, ZIP, BZIP2, LZMA2, CAB, ARJ, CPIO, RPM, ISO y DEB.
Extraer el contenido con rutas completas
7z x test-archive1.7z -y
Listado del contenido de un archivo
7z l test-archive1.7z
Comprobar la integridad del archivo
7z t test-archive1.7z
Actualizar un archivo añadiendo más ficheros
7z u test-archive1.7z tfile6.txt
Eliminar algunos ficheros de un archivo
7z d test-archive1.7z tfile4.txt
Ejemplo de uso de 7z Switches
Los ejemplos que siguen están extraídos de las páginas man del comando 7z.
Añadir todos los ficheros del directorio «dir1» al archivo archive.7z
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
Añadir todos los ficheros del directorio «dir1» al archivo SFX archive.exe
Note que el archivo SFX DEBE terminar con «.exe»
7z a -sfx archive.exe dir1
Añadir todos los ficheros del directorio «a_directory» al archivo «archive.7z» (con la encriptación de datos y cabecera del archivo activada)
7z a -mhe=on -pmy_password archive.7z a_directory
Para una descripción completa de los interruptores 7z y ejemplos de uso, navegue hasta Interruptores de línea de comandos 7z.
Copias de seguridad y limitaciones del comando 7z
NO UTILICE el formato 7-zip para realizar copias de seguridad en Linux/Unix porque :
- 7-zip no almacena el propietario/grupo del archivo.
En Linux/Unix, para hacer una copia de seguridad de los directorios debe utilizar tar :
- para hacer una copia de seguridad de un directorio :
tar cf - directory | 7za a -si directory.tar.7z
- para restaurar su copia de seguridad :
7za x -so directory.tar.7z | tar xf -
Si quieres enviar archivos y directorios (no el propietario del archivo) a otros usuarios de Unix/MacOS/Windows, puedes utilizar el formato 7-zip. Por ejemplo:
7za a directory.7z directory
- No utilice «-r» porque esta bandera no hace lo que se espera que haga.
- No utilice directorio/* porque de «.*» archivos (ejemplo : «directorio/*» no coincide con «directorio/.perfil»).
Eso es todo acerca de cómo instalar y utilizar 7zip en Ubuntu 18.04/Ubuntu 20..04. Consulta las páginas man para más detalles.
Otros tutoriales
Instalar Foxit PDF Reader en Ubuntu 20.04
Instalar y configurar ZSH y Oh-My-Zsh en Ubuntu 20.04
Ejecutar sólo comandos específicos con sudo en Linux