Что делать, если нужно отправить файл объемный файл по почте, но есть одна загвоздка, почтовые администраторы обычно устанавливают лимит на размер вложения в одном письме. Обычно его не более 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.