J'ai besoin de sauvegarder un répertoire assez volumineux, mais je suis limité par la taille des fichiers individuels. Je voudrais essentiellement créer un tar.(gz|bz2)
archive qui est divisée en archives de 200 Mo maximum. Clonezilla fait quelque chose de similaire en divisant les sauvegardes d'images nommées comme suit :
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
Existe-t-il un moyen de le faire en une seule commande? Je comprends comment utiliser le split
, mais j'aimerais ne pas avoir à créer une archive géante, puis à la diviser en archives plus petites, car cela doublerait l'espace disque dont j'aurais besoin pour créer initialement l'archive.
Réponse acceptée :
Vous pouvez diriger tar vers la commande split :
tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.
Sur certains systèmes *nix (comme OS X), vous pouvez obtenir l'erreur suivante :
split: illegal option -- -
Dans ce cas, essayez ceci (notez le -b 200m
):
tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.
S'il vous arrive d'essayer de diviser le fichier pour l'adapter à un lecteur au format FAT32,
utilisez une limite d'octets de 4294967295. Par exemple :
tar cvzf - /Applications/Install macOS Sierra.app/ |
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
Lorsque vous souhaitez extraire les fichiers, utilisez la commande suivante (comme l'a commenté @Naftuli Kay):
cat sda1.backup.tar.gz.* | tar xzvf -