Что делать, если нужно отправить файл объемный файл по почте, но есть одна загвоздка, почтовые администраторы обычно устанавливают лимит на размер вложения в одном письме. Обычно его не более 7Mb. Мы поступим по другому — сделаем архив и разобьем его по частям.

В данном примере я рассмотрю процесс архивирования и последующей разбивки на части некоторого видео-файла. На основе этого можно комбинировать нужные Вам задачи.

Исходная система:

keiz@ekz:/media/xlamino/test_arxiv$ grep -m 4 -e “model name” -e “MHz” -e “cache size” -e “bogomips” /proc/cpuinfo

model name : AMD Phenom(tm) 9850 Quad-Core Processor

cpu MHz : 2500.000

cache size : 512 KB

bogomips : 5023.01

keiz@ekz:/media/xlamino/test_arxiv$ uname -a && cat /etc/issue

Linux ekz 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:39:49 UTC 2012 x86_64 GNU/Linux

Ubuntu 10.10 \n \l

 
В процессе понадобятся следующие утилиты:7zip или rar:

ekzorchik@ekv:~$ aptitude search p7zip-full && aptitude show p7zip-full | grep -E ‘State|Version’

p p7zip-full – 7z and 7za file archivers with high compression ratio

State: not installed

Version: 9.04~dfsg.1-1

ekzorchik@ekv:~$ aptitude search rar && aptitude show rar | grep -E ‘State|Version’

p rar – Archiver for .rar files

State: not installed

Version: 2:3.9.3-1

 

Устанавливаем пакеты p7zip-full и rar:

ekzorchik@ekv:~$ sudo aptitude install rar p7zip-full

 

Исходные видео файл:

Для примера представим, что у нас в тестовом каталоге test_arxiv какой-либо фильм в формате AVI, который будет весить 1,4 Gb и из которого в конечном итоге мы хотим получить архив того или иного формата (archive.*), разбитый

на части по 250 Mb.

keiz@ekz:/media/xlamino/test_arxiv$ dir -hl && file *

итого 1,4G

-rw-r--r-- 1 keiz keiz 1,4G 2012-06-30 09:52 Naprolom.2012.HDRip.avi

Naprolom.2012.HDRip.avi: RIFF (little-endian) data, AVI, 720 x 304, 23.98 fps, video: XviD, audio: Dolby AC3 (stereo, 48000 Hz)

 

Архивация с помощью 7zip:

keiz@ekz:/media/xlamino/test_arxiv$ 7z a -v250m archive_film.7z Naprolom.2012.HDRip.avi

7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30

p7zip Version 9.04 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Scanning

Creating archive archive_film.7z

Compressing Naprolom.2012.HDRip.avi

Everything is Ok

-v — создание архива указанного размера, имеет синтаксис -v{size}[b,k,m,g]
250m — это 250 мегабайт, вместо m можно использовать b (байты), k (килобайты) или g (гигабайты).

a — добавить файлы в архив.


В результате получаем несколько архивов вида:

keiz@ekz:/media/xlamino/test_arxiv$ dir -hl archive_film.7z.00*

-rw-r–r– 1 keiz keiz 250M 2012-07-03 21:59 archive_film.7z.001

-rw-r–r– 1 keiz keiz 250M 2012-07-03 21:50 archive_film.7z.002

-rw-r–r– 1 keiz keiz 250M 2012-07-03 21:53 archive_film.7z.003

-rw-r–r– 1 keiz keiz 250M 2012-07-03 21:55 archive_film.7z.004

-rw-r–r– 1 keiz keiz 250M 2012-07-03 21:58 archive_film.7z.005

-rw-r–r– 1 keiz keiz 128M 2012-07-03 21:59 archive_film.7z.006

Для распаковки откройте первый архив (все архивы при этом должны находиться в одной папке).

 

Архивация с помощью rar:

keiz@ekz:/media/xlamino/test_arxiv$ rar a -v250m archive_naprolom Naprolom.2012.HDRip.avi

RAR 3.93 Copyright (c) 1993-2010 Alexander Roshal 15 Mar 2010

Shareware version Type RAR -? for help

Evaluation copy. Please register.

Creating archive archive_naprolom.rar

Adding Naprolom.2012.HDRip.avi

Calculating the control sum

Creating archive archive_naprolom.part2.rar

... Naprolom.2012.HDRip.avi

Calculating the control sum

Creating archive archive_naprolom.part3.rar

... Naprolom.2012.HDRip.avi

Calculating the control sum

Creating archive archive_naprolom.part4.rar

... Naprolom.2012.HDRip.avi

Calculating the control sum

Creating archive archive_naprolom.part5.rar

... Naprolom.2012.HDRip.avi

Calculating the control sum

Creating archive archive_naprolom.part6.rar

... Naprolom.2012.HDRip.avi OK

Calculating the control sum

Done

 

Архив поделенный на равные кусочки по 250 Mb:

keiz@ekz:/media/xlamino/test_arxiv$ dir -hl archive_naprolom.part*

-rw-r--r-- 1 keiz keiz 250M 2012-07-03 21:44 archive_naprolom.part1.rar

-rw-r--r-- 1 keiz keiz 250M 2012-07-03 21:48 archive_naprolom.part2.rar

-rw-r--r-- 1 keiz keiz 250M 2012-07-03 21:52 archive_naprolom.part3.rar

-rw-r--r-- 1 keiz keiz 250M 2012-07-03 21:57 archive_naprolom.part4.rar

-rw-r--r-- 1 keiz keiz 250M 2012-07-03 22:01 archive_naprolom.part5.rar

-rw-r--r-- 1 keiz keiz 135M 2012-07-03 22:03 archive_naprolom.part6.rar

В результате получаем несколько архивов вида: archive.part1.rar, archive.part2.rar, archive.part3.rar и так далее.

Для распаковки откройте первый архив.

 

Как видим утилиты 7z и rar имеют схожий функционал с одним не маловажным отличием, rar не полностью бесплатен для использования, об этом говорит строка при запуске – «Evaluation copy. Please register.»

Возможно это и не покажется столь уж значительным, но на Вашей системе следует взять любой файл и перед архивации указать команду time с целью определения какой архиватор быстрее на Вашем железе.

 

Разбиение на части готового архива:
Более старомодный способ — разбить на части какой-нибудь tar.

Для примера возьмем тот же фильм, только на этот раз представим, что мы уже запаковали его в tar.gz (с помощью какого-нибудь менеджера архивов или того же терминала).

Способ этот отличается еще и тем, что архив, разбитый таким образом на части, потом придется еще и склеивать, чтобы извлечь из него содержимое.

keiz@ekz:/media/xlamino/test_arxiv$ tar –version

tar (GNU tar) 1.23

keiz@ekz:/media/xlamino/test_arxiv$ tar cf Naprolom.2012.HDRip.avi1.tar Naprolom.2012.HDRip.avi

 

Разбиваем архив на части по 400 мегабайт:

keiz@ekz:/media/xlamino/test_arxiv$ split –version

split (GNU coreutils) 8.5

keiz@ekz:/media/xlamino/test_arxiv$ split -a 1 -b 250m Naprolom.2012.HDRip.avi.tar Naprolom.2012.HDRip.avi.tar.

Точка в конце не случайно. В результате мы получим несколько архивов вида: film.tar.gz.a, film.tar.gz.b, film.tar.gz.c и так далее.

Склеиваем разбитые архивы обратно в единый:
keiz@ekz:/media/xlamino/test_arxiv$ cat Naprolom.2012.HDRip.avi.tar.* > Naprolom.2012.HDRip.avi.tar
Где Naprolom.2012.HDRip.avi.tar — имя склеенного архива, который получится в результате.

 

Сравнивая md5sum’у у полченных разными способами файлов видим, что восстановленный архив при склеивании получился идентичный:

keiz@ekz:/media/xlamino/test_arxiv$ md5sum Naprolom.2012.HDRip.avi1.tar

5d3f10e6d1f1fd04f38976c70ea9e867 Naprolom.2012.HDRip.avi1.tar

keiz@ekz:/media/xlamino/test_arxiv$ md5sum Naprolom.2012.HDRip.avi.tar

5d3f10e6d1f1fd04f38976c70ea9e867 Naprolom.2012.HDRip.avi.tar

Разнообразие способов которыми можно «дробить» файлы, вот отличительная черта операционной системы Ubuntu.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru