Linux: Как разбить большой файл на файлы меньшего размера?

10

У меня есть гигантский файл (> 20 гигов) на исходном компьютере, и мне нужно перенести его на целевой компьютер. Для целей этого вопроса давайте предположим, что у меня нет сетевого подключения между двумя компьютерами.

Мне нужно разбить этот файл на серию файлов меньшего размера, записать файлы меньшего размера на DVD-диски, а затем снова собрать все на целевой машине.

И исходная, и целевая машины являются Linux-блоками. Есть ли способ сделать это с помощью tar? У меня такое ощущение, что мне нужно использовать этот --multi-volumeпараметр. Какие у меня варианты?

Мне нужно иметь возможность указать размер файлов томов, чтобы каждый из них помещался на одном DVD.

Спасибо!

Runcible
источник

Ответы:

14

Используйте команду split.

split -b 22 m newfile.txt new разделил бы файл "newfile.txt" на три отдельных файла с именами newaa, newab и newac, каждый файл размером 22 МБ.

duffbeer703
источник
3
Будьте осторожны, создавая префикс «new», которым вы делитесь с оригинальным файлом «newfile.txt». Теперь при попытке cat new* > newfile.txtэто взорвется!
Роберт Мартин
@RobertMartin Хороший улов!
duffbeer703
6

Другие ответы покрыты, splitчтобы объединить их в один мастер-файл, который вы просто используете cat.

koenigdmj
источник
3

Это можно легко сделать с помощью split , которая должна быть уже доступна в базе вашего дистрибутива, поскольку она является частью gnu coreutils .

Ян Юнгникель
источник
0

split -b 4000000000 имя_файла

Это создаст каждый файл 4 ГБ


источник