¿El mejor método de compresión?

53

Quiero comprimir una carpeta de 16 GB, pero ¿cuál es el mejor método? tar.gz? tar.bz2 rar? 7z? ¿Sería más pequeño el archivo comprimido si comprimiera primero un método, luego copie el archivo comprimido en una nueva carpeta y luego vuelva a comprimirlo en algún otro método? Necesito que quepa en un DVD (salida de 8.5GB, no lo recuerdo), pero poner "4370 MB" hace que el archivo comprimido sea de 2.5GB.

Por cierto, ¿cuál es el método de compresión predeterminado en Ubuntu?

Amanda
fuente

Respuestas:

70

El valor por defecto es gz. Sin 7zembargo, los mejores resultados que obtengo .

Aquí están los resultados para un contenedor virtualbox de 1.4 Gb:

ingrese la descripción de la imagen aquí

Mejor compresión - tamaño en MB:

7z 493
rar 523
bz2 592
lzh 607
gz 614
Z 614
zip 614
.arj 615
lzo 737
Zoo 890

Fuente

ingrese la descripción de la imagen aquí

Instalar en pc

 sudo apt-get install p7zip-full
Rinzwind
fuente
Gracias, ya instalé 7z y rar a través del Centro de software. Voy a intentarlo con 7z.
Amanda
1
¿De dónde vienen estos resultados? Para cada algoritmo, la relación de compresión y la velocidad dependen mucho de lo que intente comprimir. Intente comprimir algunos datos provenientes /dev/urandom: obtendrá diferentes resultados en cada intento. O prueba /dev/zero: bzip2 es el ganador (por la proporción).
Andrea Corbellini
1
@AndreaCorbellini el enlace está en la respuesta, ¡así que haz clic! y como dije: se basa en un contenedor 1.4 virtualbox. Estoy de acuerdo en que la compresión depende mucho de qué archivos sean, pero a partir de algunos años de experiencia, 7z parece ser mejor para los archivos que tiendo a tener (principalmente archivos de software y datos binarios)
Rinzwind
1
@Rinzwind: Realmente lo siento, no vi el enlace Fuente .
Andrea Corbellini
1
@AndreaCorbellini está bien;) esperemos que amanda informe los resultados: +
Rinzwind
14

Esta pregunta es muy antigua, pero tal vez alguien encuentre útil esta solución:

Uso rzip, después tar. Primero comprime bloques de datos grandes de 900 MB utilizando un método de diccionario y luego entrega los datos limpiados bzip2. Es mucho más rápido que las otras herramientas de compresión fuertes ( bzip2, lzma), y algunos archivos comprimen incluso mejor que bzip2o lzma.

Sí, gzes la herramienta de compresión predeterminada en Linux. Es rápido y, a pesar de su antigüedad, todavía ofrece muy buenos resultados al comprimir archivos de texto como el código fuente. Otra herramienta estándar es bzip2, aunque es mucho más lenta.

Adición: lrzip es más nuevo y extiende el principio de rzip. Incluso admite tamaños de bloque ilimitados y una variedad de métodos de compresión (LZMA, Bzip2, Gzip, LZO, ZPAQ o ninguno). LZMA es el estándar. Para la copia de seguridad o si comparte muchos datos con otros usuarios de Linux / BSD, puede ser muy útil.

usuario258532
fuente
Creo que te refieres a bloques de 900 kB? 900 MB sería un poco grande ...
Byte Commander
1
En realidad es de 900 MB. Ver en.wikipedia.org/wiki/Rzip
user258532
2

Yo opto por a LZMA. Tiene el byte más pequeño de arriba y tiene una fuerte relación de compresión. Comparación entre ZIP y LZMA: he generado dos archivos seq.txtcon código PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

que contiene bloques repetitivos de 0..9 dígitos ~ 1Mb de datos y rnd.txtcon código PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

que contiene bloques aleatorios de 0..9 dígitos ~ 1Mb de datos.

Resultados de compresión:

  • seq.txt, rnd.txt - 1100000 bytes
  • seq.txt.zip - 2502 bytes
  • rnd.txt.zip - 515957 bytes
  • seq.txt.lzma - 257 bytes
  • rnd.txt.lzma - 484939 bytes

Índice de compresión:

  • ZIP -> "seq.txt" -> 99.772%
  • ZIP -> "rnd.txt" -> 53.094%
  • LZMA -> "seq.txt" -> 99.976%
  • LZMA -> "rnd.txt" -> 55.914%

Por lo tanto, LZMA ha comprimido los datos secuenciales en un 0.2% más efectivamente que ZIP
y los datos aleatorios 2.8% más efectivamente que ZIP.

¡Seguro que gana LZMA!

Agnius Vasiliauskas
fuente