3 votes

comment diviser tous les fichiers d'un répertoire en fichiers de 4gb dans un autre répertoire ?

J'ai un répertoire contenant plusieurs gros fichiers de plus de 4 Go chacun. Je veux copier tous ces fichiers dans un autre répertoire (qui se trouve être un lecteur usb fat32 monté), mais en divisant les fichiers en 4 Go (puisque le lecteur de destination est limité à cette taille de fichiers).

J'ai essayé ça :

split -b 4096G /var/lib/backuppc/images/* /usbdrive/

mais je reçois un

split: extra operand `/var/lib/backuppc/images/xxxxxxxxxmyfilesname.tib'

Est-ce que je fais quelque chose de mal ? (j'ai aussi essayé "4G" au lieu de 4096G, aucune différence)

4voto

roadmr Points 32606

Ma suggestion serait de créer d'abord un fichier tar :

tar -cf /tmp/bigfile.tar /var/lib/backuppc/images/*

puis divisez-le :

cd /usbdrive
split -b 4G /tmp/bigfile.tar

Si vous voulez éviter l'utilisation du fichier tar temporaire, vous pouvez envoyer tar directement à split :

tar -cf - /var/lib/backuppc/images/* | split -b 4G

Pour le reconstituer une fois arrivé à destination, recréez et désarchivez le fichier tar :

cat /usbdrive/x* >bigfile.tar
tar -xvf bigfile.tar

Encore une fois, pour faire ça sans le fichier temporaire :

cat /usbdrive/x* | tar -xvf -

1voto

DublinJimbo Points 314

split ne peut pas prendre plus d'un fichier d'entrée comme argument.

Vous pouvez essayer d'utiliser find pour cette

cd /var/lib/backuppc/images && find . -maxdepth 1 -type f -exec split -b 4G '{}' "/usbdrive/images/{}" \;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X