Vous pouvez utiliser split pour cela :
tar czpvf - /path/to/archive | split -d -b 100M - tardisk
Cela indique à tar d'envoyer les données à stdout et de les séparer pour les récupérer à partir de stdin - en utilisant en plus un suffixe numérique (-d
), une taille de bloc (-b
) de 100M et en utilisant 'tardisk' comme base pour les noms de fichiers résultants (tardisk00, tardisk01, tardisk02, etc.).
Pour extraire les données par la suite, vous pouvez utiliser ceci :
cat tardisk* | tar xzpvf -
Jetez un œil au --new-volume-script
option, qui vous permet de remplacer le mécanisme d'invite par un mécanisme différent ou par un nom de fichier généré. ((tar.info)Multi-Volume Archives
dans le tar
page d'informations.) Le problème avec split
est que vous devez cat
les pièces se rassemblent pour faire n'importe quoi, alors qu'une archive multivolume devrait être un peu plus flexible.
Bien sûr, la meilleure option à utiliser est le --new-volume-script
option.
Mais, si vous connaissez la taille du fichier (dans ce cas, largefile.tgz), vous pouvez également le faire :
tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz
Résumé :
-c = Create
-M = multi-volume
-L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar ...)
(Pour le -L, spécifiez-en autant que nécessaire pour que la somme totale des fichiers tar soit supérieure à largefile.tgz)
Si vous essayez de tar
une arborescence de répertoires