Comprimir archivos en varios ficheros zip

nullGracias a rm -rf encontré el otro día otro servicio con posibilidad de alojamiento gratuito en Internet llamado ByetHost que me venía muy bien para cierto proyecto que tengo actualmente en desarrollo.

Intentando subir el código a la web encontré como limitación la obligación de subir ficheros comprimidos de un tamaño inferior a los 2 MBs.

Como no servía de nada usar archivos zip multivolumen (un mismo archivo dividido en varios ficheros) opté por buscar una forma sencilla de convertir un fichero .zip en varios independientes.

Por fortuna existe el comando zipsplit que con una simple instrucción me permite dividir los archivos comprimidos en varios

zipsplit -n $((2**21)) /tmp/cms.zip

donde

  1. -n $((2**21)) permite indicar el tamaño de los ficheros generados (en el ejemplo son 2 MBs)
  2. /tmp/cms.zip es el fichero que queremos dividir en otros más pequeños

NOTA-1: en el ejemplo he hecho uso de la instrucción $((..)) para realizar un cálculo que me evite tener que escribir números demasiado grandes (y de paso tener que pensar ;)). Hubiese bastado poner -n 2000000 pero ni eso son 2MBs (recordar que 1MB es 2^20 = 1048576) ni me apetecía escribir “tanto”.

NOTA-2: Si 1MB = 2^20 entonces 2MBs = 2*2^20 = 2^21

NOTA-3: En bash, la exponenciación es **

8 comentarios en “Comprimir archivos en varios ficheros zip

  1. Umn vaya, conocía split, pero ahora gracias a ti, también conozco zipsplit

    Muy útil.

    PD: Con man zipsplit no he visto nada al respecto para unir, pero si ponía “Does not yet support large (> 2 GB) or split archives.” Aunque creo que 2 GB (que no GiB) ya es bastante 😉

    Estaría bien saber como unirlos xD

  2. Por desgracia el comando “zipjoin” no existe 😀

    De todos modos el objetivo era obtener ficheros zip independientes (que puedan ser utilizados sin tener que existir el resto como ocurre con los “multivolumen”).

    Para ficheros grandes no termino de ver la utilidad (porque normalmente serán películas y esas ya vienen comprimidas) pero siempre podéis optar por el comando split (que tan acertadamente has comentado @shakaran) o bien por programas del estilo de hacha para Linux

  3. Pingback: Bitacoras.com
    • Si que lo sería (donde haya una buena interfaz de usuario que se quite todo por mucho que me guste la línea de comandos)… la pena es que la versión que tengo instalada no me ofrece dicha posibilidad 😦

      Por curiosidad, ¿cuál es tu versión de file-roller?

      Salu2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s