Разрезка больших файлов на части с последующей сборкой
Многие начинающие пользователи Linux сталкиваются с проблемой разрезания больших файлов и дальнейшего их склеивания...
Наиболее частые примеры:
Например надо слить 4-х гиговый iso-шник у друга, а под рукой нет чистых болванок, зато есть две флэшки по 2Гб каждая; или нет DVD-болванок, а есть только CD, надо залить что то на обменник только 100Mb просящий...
Ну и как разрезать файл, чтобы потом легко его собрать?!?
Ответ таков: man split и man cat
Итак, о команде split, которая позволяет разделить файл на части…
split - делит входной файл на части согласно указанным опциям, и именует части файла префиксом и окончанием в порядке возрастания (например файл input по умолчанию может быть разделена на части с префиксом x и окончанием -aa, -ab, -ae: т.е из файла одного размера получим его части названные xaa, xab, xae и т.п.)
Код:
split [option] [input [prefix]]
option - опции, перечислю самые необходимые:
-a, –suffix-length=N (длина окончания префикса по умолчанию равна 2)
-b, –bytes=SIZE (размер выводимого файла, можно указать окончание для байт - b, для килобайт - k, для мегабайт - m)
-d, –numeric-suffixes (использовать цифровое окончание вместо буквенного)
input - имя файла
prefix - префикс для созданных частей, по умолчанию имеет значение x, т.е. части разделенного файла будут назваться xaa, xab, xae и т.п.
Обратите внимание:
В последних версиях split появилась возможность завершать префикс не буквами -aa, -ab, -ae, а цифрами, для этого необходимо указать опцию -d, тогда окончания у частей файла будут -00, -01, -02.
Кроме того можно указать размер длины окончания, по умолчанию он равен 2, но если вам нужно разделить файл менее чем на 10 частей, достаточно указать опцию -a N, где N, например, равен 1, тогда вы получите файлы x0, x1, x3 … x9
Наглядный пример:
У нас есть файл clips.iso размером 1,7 Гб и под рукой оказались две флешки по 1Gb каждая, для того чтобы разделить файл на две части дадим команду:
Код:
$ split -b 940m clips.iso
это разделит файл clips.iso на две части:
xaa 940 Мб
xab 851Mb
Можно забросить на флешки, но наверняка xaa и xab немного неудобные, или непонятные названия, так давайте это поправим, используем опции -a, -d и укажем префикс в виде “clips.part”:
Код:
$ split -a 1 -d -b 940m clips.iso clips.part
В итоге получим:
сlips.part0 940 Мб
сlips.part1 851Mb
Совет:
Привыкайте называть части файла понятными и удобными вами префиксами, чтобы потом не потеряться в куче болванок с непонятными файлами называющимися xaa, xab и т.п...
Порубали файл, залили на флешки, принесли домой. Как склеить???
cat - команда объединяющая файлы и направляющая их на стандартный вывод.
В нашем случае достаточно скопировать две части файла в одну директорию и дать команду:
Код:
$ cat clips.part* > сlips.iso
эта команда по порядку (сlips.part0 затем сlips.part1) соеденит части в один файл сlips.iso
благодаря указанию * даже если бы частей было больше, эта команда все равно бы по порядку “склеила” их в единый файл в порядке возрастания окончания (-aa, -ab, -ae или -00, -01, -02 или -0, -1, -2)
Если вам вдруг понадобилось соединять файлы в другом порядке (мало ли), достаточно перечислить их через пробел:
Код:
$ cat file1 file2 file3 > outputfile
А вот еще пример:
Есть регулярно пользуемый образ DVD с данными: - baze.iso
Порубим его на куски, для резервирования на CD...
Код:
split -a 1 -d -b 680m baze.iso bazerezerv.part
В итоге получаем:
Можно нарезать на CD, и спрятать на всякий случай подальше...
Автор не известен.