Solution 1 :
Vous pouvez utiliser l'"archive fractionnée " fonctionnalité de "zip " lui-même en utilisant le "--split-size ".
À partir de la page de manuel "zip" ("man zip
"):
(...)
L'une des utilisations des archives fractionnées consiste à stocker une grande archive sur plusieurs suppressions.
médias capables. Pour une archive fractionnée avec 20 fichiers fractionnés, les fichiers sont
nommément (remplacez ARCHIVE par le nom de votre archive) AR‐
CHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Notez que le
le dernier fichier est le fichier .zip.(...)
-s taille fractionnée
--split-size splitsizeLa taille de fractionnement est un nombre éventuellement suivi d'un multiplicateur.
Actuellement, le nombre doit être un entier. Le multiplicateur peut
être actuellement l'un des k (kilooctets), m (mégaoctets), g (gigaoctets),
ou t (téraoctets). Comme 64k est la taille de partage minimale, les nombres
sans multiplicateurs par défaut en mégaoctets. Par exemple, pour créer
mangé une archive divisée appelée foo avec le contenu de la barre
répertoire avec des fractionnements de 670 Mo qui pourraient être utiles pour la gravure
sur les CD, la commande :zip -s 670m -r foo bar
pourrait être utilisé.
Donc, pour créer une archive zip fractionnée , vous pouvez faire ce qui suit (le "-r
" est le commutateur "récursif" pour inclure les sous-répertoires du répertoire) :
$ zip -r -s 10m archive.zip directory/
Pour décompresser le fichier , le "zip
" La page de manuel explique que vous devez utiliser le commutateur "-s 0`" :
(...)
zip -s 0 split.zip --out unsplit.zip
convertira une archive fractionnée en une archive à fichier unique.
(...)
Donc, vous devez d'abord "défractionner" le fichier ZIP en utilisant le commutateur "-s 0":
$ zip -s 0 archive.zip --out unsplit.zip
... puis vous décompressez le fichier non divisé :
$ unzip unsplit.zip
Solution 2 :
tar -czvf - /path/to/files | split -b 10M - archive.tar.gz
Vous donnera un certain nombre de fichiers :
archive.tar.gzaa
archive.tar.gzab
...
Qui peut ensuite être décompressé avec :
cat archive.tar.* | tar -xzvf -
Solution 3 :
Voici comment je l'ai fait pour un fichier de 5 Go (divisé en 1 Go contre 10 Mo comme demandé par OP)...
Exemple : Pour diviser un fichier de 5 Go en fichiers de 1 Go pour copier sur une clé USB FAT32 (nom de fichier "FIVE_GB_FILE.ISO")
Étape 1 : compressez le fichier (pas de compression, même répertoire que la source)
zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO
Étape 2 :divisez le fichier zip de 5 Go en fichiers zip de 1 Go
zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP
Voilà... vous devriez avoir les fichiers suivants de 1 Go (ET l'original, ET le zip de l'étape 1)
SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04