7zip
es más un compactador (como PKZIP) que un compresor. Está disponible para Linux, pero solo puede crear archivos comprimidos en archivos normales, por ejemplo, no puede comprimir una secuencia. No es capaz de almacenar la mayoría de los atributos de archivos Unix como propiedad, ACL, atributos extendidos, enlaces duros ...
En Linux, como compresor , tienes xz
que usa el mismo algoritmo de compresión que 7zip
(LZMA2). Puede usarlo para comprimir archivos tar.
Al igual que para gzip
y bzip2
, hay una variante paralelapixz
que puede aprovechar varios procesadores para acelerar la compresión ( xz
también puede hacerlo de forma nativa desde la versión 5.2.0 con la -T
opción). La pixz
variante también admite la indexación de un tar
archivo comprimido, lo que significa que puede extraer un solo archivo sin tener que descomprimirlo desde el principio.
lrzip es lo que realmente estás buscando, ¡ especialmente si estás comprimiendo el código fuente!
Citando el README:
lrzip funciona primero escaneando y eliminando cualquier redundancia de datos de larga distancia con un algoritmo basado en rzip, luego comprimiendo los datos no redundantes.
Con Kolivas proporciona un ejemplo fantástico en la lista de correo del kernel de Linux ; en donde comprime un tarball de 10.3GB de cuarenta versiones de Kernel de Linux hasta 163.9MB (1.6%), y lo hace más rápido que xz. ¡Ni siquiera estaba usando el algoritmo de segundo paso más agresivo!
Estoy seguro de que obtendrás excelentes resultados al comprimir grandes cantidades de código fuente :)
Ejemplo (usando las opciones predeterminadas para otros):
Ultra compresión, perro lento:
Para carpetas, simplemente cambie
lrzip
porlrztar
fuente
lrzip
también funciona muy bien para las copias de seguridad detar/cpio/pax
los árboles de archivos del sistema ed, porque generalmente contienen muchas redundancias de largo alcance, algo quelrzip
es realmente bueno para comprimir.lrzip
ypixz
en un archivo de texto de 19 GB. Ambos tardaron aproximadamente media hora en comprimirlo (en una máquina hexa-core), pero ellrz
archivo tenía la mitad del tamaño delxz
archivo (2.7 frente a 4.4 GB). Entonces, otro voto para esta respuesta en su lugar.Si está buscando la mayor reducción de tamaño independientemente de la velocidad de compresión,
LZMA
es probable que sea su mejor opción.Al comparar las diversas compresiones, generalmente la compensación es tiempo versus tamaño.
gzip
tiende a comprimir y descomprimir relativamente rápido mientras produce una buena relación de compresión.bzip2
es algo más lento que elgzip
tiempo de compresión y descompresión, pero produce relaciones de compresión aún mayores.LZMA
tiene el tiempo de compresión más largo, pero produce las mejores relaciones, a la vez que tiene una tasa de descompresión superior a la debzip2
.Fuentes: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html
http://tukaani.org/lzma/benchmarks.html
fuente
zpaq
opaq8l
. Sin embargo, son tan lentos que no son prácticos para la mayoría de los usos del mundo real.sudo apt-get install zpaq
, hice algunas pruebas, según wiki , esa aplicación sería la más nueva de 2009, pero aún pierde por kgb (que usa PAQ6), pero kgb es MUCHO más lento ...zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
comprime más quekgb -9
(respuesta actualizada) Si el tiempo no importa, use ZPAQ v1.10 (o más reciente) ej .:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
(la ubicación del archivo max.cfg puede variar, verifique la lista de archivos del paquete instalado)zpaq
en realidad comprimido más quekgb -9 newFileName.kgb yourFileName.tar
.Eso se basa en el algoritmo antiguo PAQ6 , y es muy lento ... ¡
Lo probé con todos los otros compresores como 7zip, lrzip, bzip2, kgb ... y zpaq más comprimido!
Si
kgb
aún le interesa: (ya que fue mi elección inicial en esta respuesta, así que guardo la información aquí)Ubuntu 14.04 tiene kgb 1.0b4 , ejecute
sudo apt-get install kgb
para instalarlo.A continuación se muestra una versión de Windows que puede intentar ejecutar / compilar
kgb
en Linux, pero no tuve éxito.La versión 2 beta2 se puede encontrar en SourceForge , pero no hay binarios de Linux disponibles. Puede intentar ejecutarlo en la consola con
wine kgb2_console.exe -a7 -m9
(el método-a6 -m9
parece ser equivalente al mejor método en 1.0b4,-a7
es nuevo en 2 beta2). Aunque tuve una mejor estabilidad al instalar .NET 2.0 con winetricks y ejecutarlowine "KGB Archiver 2 .net.exe"
(no me gusta un poco hacerlo, así que me quedaré con Linux 1.0b4 nativo que tiene casi el mismo resultado que 2 beta2).De todos modos, la versión 2 beta2 también merece una versión nativa de Linux. Tal vez se pueda lograr algo con MinGW, mira esto , pero este comando aún falla gravemente:
i586-mingw32msvc-g++ kgb2_console.cpp -o kgb
. ¿Se puede intentar compilarlo condmcs
(Mono)? ver este consejo .fuente
7zip no es una tecnología única, pero admite varios métodos de compresión diferentes (ver wikipedia 7z sobre eso).
Se realizó un conjunto de pruebas con diferentes herramientas especialmente para archivos fuente C. No estoy seguro de cuáles herramientas existen para Linux si aún existen. Sin embargo, puede observar que el mejor algoritmo fue PPM con modificaciones (PPMII, luego PPMZ).
Si está interesado en las herramientas, puede navegar por el sitio, está en ruso, pero el traductor de Google puede ayudar. Hay un gran depósito de archivos binarios , que puede usar (o no podrá) desde Linux con wine, si es realmente necesario.
fuente