Працюємо з великими файлами в linux, open source в Татарстані

Багато починаючі користувачі 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, і заховати на всякий випадок подалі.

Ох вже ці пропалені лінуксоїди. Замість цього сказав би, що немає для такого завдання графічної оболонки, прямо відповівши на питання.

Потрібно завантажити 4ГБ iso образ, а місце є тільки на фат32 розділі?


Чи не юзати фат32 на гвинті? )) В усякому разі під вінду вагон тулз для рабити з extfs, reiserfs, xfs.

Схожі статті