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


10

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

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

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

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

Спасибо!

Ответы:


14

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

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


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

@RobertMartin Хороший улов!
duffbeer703

6

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


3

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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.