¿Hay alguna forma de evitar selectivamente la compresión de ciertos tipos de archivos en 7-zip, como en WinRAR?
Estoy tratando de comprimir una carpeta enorme (muchos gigabytes), y no quiero que los archivos ya comprimidos (por ejemplo, archivos ZIP) se vuelvan a comprimir; deben almacenarse sin compresión.
compression
7-zip
Mehrdad
fuente
fuente
Respuestas:
Sí, es posible tener diferentes métodos de compresión para diferentes archivos dentro del mismo archivo 7-Zip.
Use la versión de línea de comando de 7-Zip con el
-m
parámetro para especificar el método comoCopy
, lo que significa que no hay compresión.Ejemplo:
Para obtener más información, vea el modificador -m (Establecer método de compresión) .
fuente
-m0=Copy
no funciona, inténtalo-mx=0
.Supongamos que tiene archivos zip y archivos txt sin comprimir en su carpeta.
El primer paso es crear un archivo comprimiendo archivos txt usando el siguiente comando.
puede usar -m para establecer niveles de compresión, esto también depende del método de compresión que esté usando
Supongamos aquí que solo hay compresión predeterminada
Te comprimirás.7z ahora.
El segundo paso será copiar el archivo ya comprimido a este archivo o crear un nuevo archivo
Hay una mayor elaboración del comando de actualización aquí
Y en caso de que tenga libertad para usar la interfaz gráfica, la actualización se puede realizar de la siguiente manera
fuente
Creé un script de PowerShell que comprimirá rápidamente un directorio almacenando tipos de archivos que ya están comprimidos (como archivos .zip) sin intentar volver a comprimirlos. Utiliza la interfaz de línea de comandos de 7zip y utiliza extensiones de nombre de archivo para decidir si comprime o simplemente almacena un archivo determinado.
Puede encontrar el script aquí: https://gist.github.com/ivanatpr/5dea086172eab573ba71
fuente
Técnicamente, los archivos comprimidos no se comprimen más, algo sobre un límite de entropía o algo así, olvido los detalles, pero lo máximo que obtendría es menos del 2% que he visto.
La mayoría de los buenos compresores comprueban la compresión y simplemente almacenan archivos no comprimibles, ya que la compresión agregaría sobrecarga y aumentaría el tamaño.
Por supuesto, existe el trabajo y el tiempo de mirar el archivo en primer lugar.
Como se discutió en otras respuestas, realizar múltiples pases sobre su conjunto de archivos probablemente será la mejor solución y es fácilmente programable.
Cree el archivo 7z y agregue todo, PERO los archivos comprimidos en una sola pasada, luego agregue los archivos precomprimidos como datos no comprimidos. (Lo haría de esta manera, ya que las cosas compresibles estarían al principio del archivo y las no comprimibles al final. Se transmitiría más rápido desde el disco ya que es contiguo)
(usado 'comprimir ...' demasiado!)
fuente