Soluzione 1:
Puoi utilizzare il file "archivio diviso " funzionalità di "zip " utilizzando il formato "--split-size " opzione.
Dalla manpage "zip" ("man zip
"):
(...)
Un utilizzo degli archivi divisi è l'archiviazione di un archivio di grandi dimensioni su più rimozioni
media capaci. Per un archivio diviso con 20 file divisi i file sono tipo
icamente denominato (sostituisci ARCHIVE con il nome del tuo archivio) AR‐
ARCHIVIO.z01, ARCHIVIO.z02, ..., ARCHIVIO.z19, ARCHIVIO.zip. Si noti che il
l'ultimo file è il file .zip.(...)
-s diviso
--split-size splitsizeLa dimensione divisa è un numero seguito facoltativamente da un moltiplicatore.
Attualmente il numero deve essere un numero intero. Il moltiplicatore può
attualmente essere uno tra k (kilobyte), m (megabyte), g (gigabyte),
o t (terabyte). Poiché 64k è la dimensione minima della suddivisione, i numeri
senza moltiplicatori l'impostazione predefinita è megabyte. Ad esempio, per creare
mangiato un archivio diviso chiamato foo con il contenuto della barra
directory con suddivisioni di 670 MB che potrebbero essere utili per la masterizzazione
sui CD, il comando:zip -s 670m -r foo bar
potrebbe essere utilizzato.
Quindi, per creare un archivio zip diviso , puoi fare quanto segue (il file "-r
" è l'opzione "ricorsiva" per includere le sottodirectory della directory):
$ zip -r -s 10m archive.zip directory/
Per decomprimere il file , il "zip
" manpage spiega che dovresti usare l'opzione "-s 0`":
(...)
zip -s 0 split.zip --out unsplit.zip
convertirà un archivio diviso in un archivio a file singolo.
(...)
Quindi, per prima cosa "annulla la divisione" del file ZIP utilizzando l'opzione "-s 0":
$ zip -s 0 archive.zip --out unsplit.zip
... e poi decomprimi il file non diviso:
$ unzip unsplit.zip
Soluzione 2:
tar -czvf - /path/to/files | split -b 10M - archive.tar.gz
Ti darà un numero di file:
archive.tar.gzaa
archive.tar.gzab
...
Che poi può essere decompresso con:
cat archive.tar.* | tar -xzvf -
Soluzione 3:
Ecco come l'ho fatto per un file da 5 GB (suddiviso in 1 GB contro 10 MB come richiesto dall'OP)...
Esempio: Per dividere un file da 5 GB in file da 1 GB da copiare su una USB FAT32 (nome file "FIVE_GB_FILE.ISO")
Passaggio 1: zippare il file (nessuna compressione, stessa directory dell'origine)
zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO
Passaggio 2 :divide il file zip da 5 GB in file zip da 1 GB
zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP
Voilà... dovresti avere i seguenti file da 1 GB (E l'originale E lo zip del passaggio 1)
SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04