Para descomprimir archivos 7z en GNU/Linux es necesario instalar el paquete p7zip



7-Zip es un formato de compresión de archivos que logra el mayor radio o grado de compresión. En GNU/Linux, el paquete p7zip incluye la herramienta 7za. La aplicación soporta los formatos 7z (que implementa el algoritmo de compresión LZMA), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM y DEB. El radio de compresión en el nuevo formato 7z es un 30-50% mejor que en el formato ZIP. 7za es un ejecutable stand-alone y maneja menos formatos de archivo que 7z.

Para instalar 7-Zip en CentOS 6 es necesario agregar el repositorio EPEL del proyecto Fedora (ver este artículo).

yum install p7zip

Para comprimir un directorio utilizando el formato 7z se utiliza 7za con los siguientes parámetros:

7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archivo.7z dir1

Este ejemplo agrega todos los archivos dentro del directorio dir1 al archivo archivo.7z utilizando la configuración "ultra". El parámetro -t7z indica el formato de archivo 7z, el parámetro -m0=lzma indica el algoritmo LZMA (Lempel-Ziv-Markov), el parámetro -mx=9 indica el nivel de compresión 9 (Ultra), el parámetro -mfb=64 indica el número de fast bytes para el algoritmo LZMA (puede ser de 3 a 255, valores más grandes proveen mayor radio de compresión a expensas de mayor tiempo de ejecución), el parámetro -md=32m indica el tamaño de diccionario (32 megabytes), finalmente el parámetro -ms=on indica que se cree un archivo sólido.

Los parámetros avanzados descritos anteriormente son opcionales y es posible comprimir un directorio de forma más simple ejecutando directamente:

7za -t7z archivo.7z dir1

Para extraer archivos se utiliza la función x, por ejemplo para extraer un archivo 7z separado en múltiples partes (document.zip.001, document.zip.002, document.zip.003, etc.):

7za x document.zip.001

Finalmente, un ejemplo completo:

$ cd /tmp/
$ mkdir test
$ cd test/
$ touch pepe
$ echo 1111111 > pepe
$ ls -la
total 4
-rw-rw-r-- 1 pepe pepe 8 Nov 27 09:04 pepe
$ cat pepe
1111111
$ cd ..
$ 7za a -t7z pepe.7z test

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)
Scanning

Creating archive pepe.7z

Compressing  test/pepe

Everything is Ok
$ 7za l pepe.7z

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)

Listing archive: pepe.7z

--
Path = pepe.7z
Type = 7z
Method = LZMA
Solid = -
Blocks = 1
Physical Size = 167
Headers Size = 159

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2012-11-27 09:04:15 ....A            8            8  test/pepe
2012-11-27 09:04:09 D....            0            0  test
------------------- ----- ------------ ------------  ------------------------
                                     8            8  1 files, 1 folders
$ rm -rf test
$ 7za x pepe.7z

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: pepe.7z

Extracting  test/pepe
Extracting  test

Everything is Ok

Folders: 1
Files: 1
Size:       8
Compressed: 167
$ ll test
total 4
-rw-rw-r-- 1 pepe pepe 8 Nov 27 09:04 pepe
$ cat test/pepe
1111111


Tal vez pueda interesarte


Compartí este artículo