Работаем с большими файлами в Linux

The answer you entered to the math problem is incorrect.

Многие начинающие пользователи 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
МОЙ LINUX 11

это разделит файл clips.iso на две части:
xaa 940 Мб
xab 851Mb
МОЙ LINUX 11

Можно забросить на флешки, но наверняка xaa и xab немного неудобные, или непонятные названия, так давайте это поправим, используем опции -a, -d и укажем префикс в виде “clips.part”:

$ split -a 1 -d -b 940m clips.iso clips.part

МОЙ LINUX 11

В итоге получим:
сlips.part0 940 Мб
сlips.part1 851Mb
МОЙ LINUX 11

Совет:

Привыкайте называть части файла понятными и удобными вами префиксами, чтобы потом не потеряться в куче болванок с непонятными файлами называющимися xaa, xab и т.п...
Порубали файл, залили на флешки, принесли домой. Как склеить???

МОЙ LINUX 11

cat - команда объединяющая файлы и направляющая их на стандартный вывод.

В нашем случае достаточно скопировать две части файла в одну директорию и дать команду:

$ cat clips.part* > сlips.iso

МОЙ LINUX 11

эта команда по порядку (сlips.part0 затем сlips.part1) соеденит части в один файл сlips.iso
МОЙ LINUX 11
благодаря указанию * даже если бы частей было больше, эта команда все равно бы по порядку “склеила” их в единый файл в порядке возрастания окончания (-aa, -ab, -ae или -00, -01, -02 или -0, -1, -2)

Если вам вдруг понадобилось соединять файлы в другом порядке (мало ли), достаточно перечислить их через пробел:
$ cat file1 file2 file3 > outputfile

А вот еще пример:
Есть регулярно пользуемый образ DVD с данными: - baze.iso

МОЙ LINUX 11

Порубим его на куски, для резервирования на CD...
split -a 1 -d -b 680m baze.iso bazerezerv.part


МОЙ LINUX 11

В итоге получаем:

МОЙ LINUX 11

Можно нарезать на CD, и спрятать на всякий случай подальше...

Источник:  http://auna.nnm.ru/moj_linux_11


Комментарии

Изображение пользователя Denver-22.

А есть то же самое в графической оболочке?

Изображение пользователя admin.

мне в командной строке удобнее...

А вот такую задачку как решите:
Нужно скачать 4ГБ iso образ, а место есть только на фат32 разделе?
(потом образ перенести на другую машину, где уже и записать. места на 2й машине достаточно)

Изображение пользователя admin.

и какие проблемы? заходим на FAT32 раздел и wget http://myserver.com/4tb.iso

wget сам нарежет файл на куски допустимых размеров? о_0

4ГБ одним куском на FAT32 не сохранить.

Изображение пользователя Denver-22.

Quote:
мне в командной строке удобнее...
Ох уж эти прожженные линуксоиды. Вместо этого сказал бы, что нет для такой задачи графической оболочки, прямо ответив на вопрос.

Изображение пользователя admin.

я не уверен то что GUI под это нет. я просто о ней не знаю.

т.е. на мою задачку забили, да? :)))

Изображение пользователя manofring.

на фат32 на самом деле больше 2 гиг файл не запишеш..потолок у фата

Изображение пользователя DooM2_iMp.

Quote:
Ох уж эти прожженные линуксоиды. Вместо этого сказал бы, что нет для такой задачи графической оболочки, прямо ответив на вопрос.
а пошукать расширения для наутилуса? (статья на опенказани пробегала)

Quote:
Нужно скачать 4ГБ iso образ, а место есть только на фат32 разделе?
Не юзать фат32 на винте? )) во всяком случае под винду вагон тулз для рабыты с extfs, reiserfs, xfs.

ЗЫ а если попробовать нечто типа "wget http://www.site.com/megafile.iso|split -a 1 -d -b 680m bazerezerv.part - ", или нечто подобное (за правильность не уверен ;) ).

wget не умеет в stdout файлы выдавать

Изображение пользователя DooM2_iMp.

Quote:
arcman
тогда хз. может другой даунлоадер попробовать типа aria2?

Отправить комментарий

Пример: 1+1, ответ: 2

Ñòàðí/A>