GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo comprimir archivos con un límite de tamaño?

Solución 1:

Puede usar el "archivo dividido " funcionalidad de "zip " mismo usando el "--split-size " opción.

Desde la página de manual "zip" ("man zip "):

(...)

Un uso de los archivos divididos es almacenar un archivo grande en varias ubicaciones
medios capaces. Para un archivo dividido con 20 archivos divididos, los archivos se tipifican
Nombre icicamente (reemplazar ARCHIVO con el nombre de su archivo) AR‐
CHIVE.z01, ARCHIVO.z02, ..., ARCHIVO.z19, ARCHIVO.zip. Tenga en cuenta que el
el último archivo es el archivo .zip.

(...)

-s tamaño dividido
--tamaño dividido tamaño dividido

El tamaño de división es un número seguido opcionalmente por un multiplicador.
Actualmente el número debe ser un número entero. El multiplicador puede
ser actualmente uno de k (kilobytes), m (megabytes), g (gigabytes),
o t (terabytes). Como 64k es el tamaño mínimo de división, los números
sin multiplicadores por defecto a megabytes. Por ejemplo, para crear
comió un archivo dividido llamado foo con el contenido de la barra
directorio con divisiones de 670 MB que pueden ser útiles para grabar
en CD, el comando:

                zip -s 670m -r foo bar

podría usarse.

Entonces, para crear un archivo zip dividido , podría hacer lo siguiente (el "-r " es el interruptor "recursivo" para incluir subdirectorios del directorio):

$ zip -r -s 10m archive.zip directory/

Para descomprimir el archivo , el "zip La página de manual explica que debe usar el modificador "-s 0`":

(...)

 zip -s 0 split.zip --out unsplit.zip

convertirá un archivo dividido en un archivo de un solo archivo.

(...)

Entonces, primero "desdivide" el archivo ZIP usando el interruptor "-s 0":

$ zip -s 0 archive.zip --out unsplit.zip

... y luego descomprimes el archivo sin dividir:

$ unzip unsplit.zip

Solución 2:

tar -czvf - /path/to/files | split -b 10M - archive.tar.gz

Le dará una serie de archivos:

archive.tar.gzaa

archive.tar.gzab

...

Que luego se puede descomprimir con:

cat archive.tar.* | tar -xzvf -

Solución 3:

Así es como lo hice para un archivo de 5 GB (dividido en 1 GB frente a 10 MB según lo solicitado por OP)...

Ejemplo: Para dividir un archivo de 5 GB en archivos de 1 GB para copiar a un USB FAT32 (nombre de archivo "FIVE_GB_FILE.ISO")

Paso 1: comprima el archivo (sin compresión, mismo directorio que la fuente)

zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO

Paso 2 :divide el archivo zip de 5 GB en archivos zip de 1 GB

zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP

Listo... deberías tener los siguientes archivos de 1GB (Y el original, Y el zip del paso 1)

SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04

Linux
  1. Cómo archivar y comprimir archivos en Linux

  2. Cómo comprimir varios archivos en Linux

  3. Trabajar con archivos ZIP en Linux

  4. Cómo encontrar todos los archivos con tamaño de archivo cero (0) bytes en un directorio recursivamente

  5. ¿Cómo limitar el tamaño del archivo en la confirmación?

Cómo descomprimir archivos en Linux

Cómo comprimir archivos y directorios en Linux

Cómo descomprimir archivos zip en Linux

Cómo subir archivos con FileZilla

Cómo comprimir un archivo en Linux

¿Cómo puedo enumerar los archivos en un archivo zip sin descomprimirlo?