Linux: Comment diviser un gros fichier en petits fichiers?

10

J'ai un fichier géant (> 20 concerts) assis sur ma machine source et je dois le transférer sur ma machine cible. Aux fins de cette question, supposons que je n'ai pas de connectivité réseau entre les deux machines.

J'ai besoin de diviser ce fichier en une série de fichiers plus petits, d'écrire les petits fichiers sur des DVD, puis de tout réassembler sur la machine cible.

Les machines source et de destination sont des boîtiers Linux. Existe-t-il un moyen d'accomplir cela en utilisant tar? J'ai le sentiment que je dois utiliser le --multi-volumeparamètre. Quelles sont mes options?

J'ai besoin de pouvoir spécifier la taille des fichiers de volume, afin de m'assurer que chacun tiendra sur un seul DVD.

Merci!

Runcible
la source

Réponses:

14

Utilisez la commande split.

split -b 22 m newfile.txt new diviserait le fichier "newfile.txt" en trois fichiers distincts appelés newaa, newab et newac, chaque fichier de la taille de 22 Mo.

duffbeer703
la source
3
Veillez à créer le préfixe "nouveau" que vous partagez avec le fichier d'origine "nouveaufichier.txt". Maintenant, quand vous essayez de le faire, cat new* > newfile.txtça va exploser!
Robert Martin
@RobertMartin Bonne prise!
duffbeer703
6

D'autres réponses ont couvert splitpour les combiner en un seul fichier principal que vous utilisez cat.

koenigdmj
la source
3

Cela peut être fait facilement en utilisant split , qui devrait déjà être disponible dans la base de votre distribution car il fait partie de gnu coreutils .

Jan Jungnickel
la source
0

split -b 4000000000 nom_fichier

Il créera chaque fichier de 4 Go


la source