Linux zip разбить на части
Краткая памятка по работе с архиваторами (программами управления файловыми архивами) из консоли в Linux.
-
В двух словах о самом формате tar
где foo.tar имя которое будет присвоено полученному архиву, а "./" указание папки
А для распаковки этого архива будем использовать
-A, --catenate, --concatenate
склеить файлы tar в один архив
-c, --create
создать новый архив
-d, --diff, --compare
найти различия между архивом и файловой системой
--delete
удалить из архива (не применяется к магнитным лентам!)
-r, --append
добавить файлы в конец архива
-t, --list
показать содержимое архива
-u, --update
добавить только новые версии файлов файлов
-x, --extract, --get
извлечь файлы из архива
-j, --bzip2
используется для создания/распаковки .bz2 файлов
-z, --gzip, --ungzip
используется для создания/распаковки .gz файлов
-M, --multi-volume
создать/показать/распаковать многотомный архив
Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя - man tar.
(«-» после -czvf говорит tar'у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac . размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.
Склеить все части можно командой
Если все части архива находятся в одной папке, то команда для склеивания выглядит так:в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 . размер каждого 100 Мб (опция -v100m).
Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать команду
между вашим паролем и ключем -p не должно быть пробелов, в кавычки надо брать если в пароле используется например дефис или другой системный символ
В данном примере я рассмотрю процесс архивирования и последующей разбивки на части некоторого видео-файла. На основе этого можно комбинировать нужные Вам задачи.
model name : AMD Phenom(tm) 9850 Quad-Core Processor
cpu MHz : 2500.000
cache size : 512 KB
keiz@ekz:/media/xlamino/test_arxiv$ uname -a && cat /etc/issue
Ubuntu 10.1 0 \n \l
State: not installed
State: not installed
Устанавливаем пакеты p7zip-full и rar:
$ sudo aptitude install rar p7zip-full
Исходные видео файл:
Для примера представим, что у нас в тестовом каталоге test_arxiv какой-либо фильм в формате AVI, который будет весить 1,4 Gb и из которого в конечном итоге мы хотим получить архив того или иного формата (archive.*), разбитый
на части по 250 Mb.
keiz@ekz:/media/xlamino/test_arxiv$ dir -hl && file *
-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)
Creating archive archive_film.7z
Everything is Ok
-v — создание архива указанного размера, имеет синтаксис -v[b,k,m,g]
250m — это 250 мегабайт, вместо m можно использовать b (байты), k (килобайты) или g (гигабайты).a — добавить файлы в архив.
В результате получаем несколько архивов вида :
keiz@ekz:/media/xlamino/test_arxiv$ dir -hl archive_film.7z.00*
Для распаковки откройте первый архив (все архивы при этом должны находиться в одной папке).
Архивация с помощью 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
Calculating the control sum
Creating archive archive_naprolom.part2.rar
Calculating the control sum
Creating archive archive_naprolom.part3.rar
Calculating the control sum
Creating archive archive_naprolom.part4.rar
Calculating the control sum
Creating archive archive_naprolom.part5.rar
Calculating the control sum
Creating archive archive_naprolom.part6.rar
Calculating the control sum
Архив поделенный на равные кусочки по 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 и так далее.
Для распаковки откройте первый архив.
Разбиение на части готового архива :
Более старомодный способ — разбить на части какой-нибудь tar.
Для примера возьмем тот же фильм, только на этот раз представим, что мы уже запаковали его в tar.gz (с помощью какого-нибудь менеджера архивов или того же терминала).
Способ этот отличается еще и тем, что архив, разбитый таким образом на части, потом придется еще и склеивать, чтобы извлечь из него содержимое.
tar (GNU tar) 1.23
keiz@ekz:/media/xlamino/test_arxiv$ tar cf Naprolom.2012.HDRip.avi1.tar Naprolom.2012.HDRip.avi
Разбиваем архив на части по 400 мегабайт:
split (GNU coreutils) 8.5
Точка в конце не случайно. В результате мы получим несколько архивов вида: 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 — имя склеенного архива, который получится в результате.
keiz@ekz:/media/xlamino/test_arxiv$ md5sum Naprolom.2012.HDRip.avi1.tar
keiz@ekz:/media/xlamino/test_arxiv$ md5sum Naprolom.2012.HDRip.avi.tar
Разнообразие способов которыми можно «дробить» файлы, вот отличительная черта операционной системы Ubuntu.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
7-Zip является архиватором файлов с наивысшей степенью сжатия, с открытым исходным кодом.
Первоначально она была разработана для Windows. Портированная на Linux 7zip также часто используется для извлечения DEB, RPM и ISO файлов.
Кроме простого архивирования, 7zip может поддерживать шифрование AES-256, а также самораспаковывающиеся и многотомные архивы.
Программа поддерживает 7Z (реализующий алгоритм сжатия LZMA), LZMA2, XZ, ZIP, Zip64, CAB, RAR (если установлен несвободный пакет p7zip-rar), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, большинство образов файловой системы и форматов DEB.
Степень сжатия в новом формате 7z на 30-50% лучше, чем в формате ZIP. 7Z использует плагины для обработки архивов.
Установка программы 7Z в Linux Ubuntu/Mint
В стандартных репозиториях Linux Ubuntu и Mint присутствуют три пакета, относящиеся к 7Z:
- p7zip: включает 7zr (минимальный инструмент архивирования 7zip), который может работать только с родным форматом 7z.
- p7zip-full: содержит 7z, который может поддерживать 7z, LZMA2, XZ, ZIP, CAB, GZIP, BZIP2, ARJ, TAR, CPIO, RPM, ISO и DEB.
- p7zip-rar: содержит плагин для извлечения файлов RAR.
Рекомендуется установить пакет p7zip-full (а не p7zip), поскольку это наиболее полный пакет 7Z, который поддерживает много различных архивных форматов.
Если вы намереваетесь извлекать файлы RAR, вам также нужно установить пакет p7zip-rar. Поддержка вынесена в отдельный пакет плагина потому, что RAR — это проприетарный формат.
Синтаксис программы 7z
Основные команды программы 7Z
Основные ключи команды 7Z
Посмотреть все команды 7Z можно командой:
Чтобы посмотреть полную документацию(Англ.):
Примеры основного использования программы 7Z
Создание архива
Для упаковки в архив archive.7z файлов file01.c и file02.c в директории /home/user_name/
Для упаковки в архив archive.7z всего содержимого директории /home/user_name/
Файл archive.7z будет создаваться в текущей директории /home/user_name/.
Чтобы выбрать формат архива, нужно использовать опцию (ключ) -t (format name), которая позволит вам выбрать формат архива, такой как zip, gzip, bzip2 или tar
Создать архив с максимальной степенью сжатия
Создать архив всех файлов за исключением файла file01.c
Установить пароль на файл архива, например password
Посмотреть содержимое архива
Распаковка архива
Для распаковки архивов используются команды a и x
Для извлечения содержимого из архива arch.7z в текущую директорию, выполните в терминале:
Этом случае все файлы распакуются в текущую директорию без сохраненных путей. Чтобы распаковать файлы из архива с структурой директорий
Если архив разбит на множество частей, используйте имя с наименьшим номером тома:
Если вы хотите извлечь архив не в текущей диретории, вы можете явно задать целевую директорию с помощью опции -o
Команда b измеряет скорость процессора и проверяет оперативную память на наличие ошибок.
Тест показывает рейтинг в MIPS (миллион инструкций в секунду). Значение рейтинга рассчитывается по измеренной скорости процессора и нормализуется по результатам работы процессора Intel Core 2 с отключенной опцией многопоточности. Так что, если у вас Intel Core 2 Duo, номинальные значения должны быть близки к реальной частоте процессора.
Мне нужно загрузить файл 400 МБ на мой веб-сервер, но я ограничен загрузкой 200 МБ. Мой хост предложил мне использовать составной архив, чего я никогда не делал в Linux.
Я создал тест в своей папке, сжать вверх PDF в test.zip.001 , .002 и .003 . Как мне разархивировать его? Нужно ли сначала присоединиться к ним?
Обратите внимание, что я буду так же рад использовать 7z, как и форматы ZIP. Если это имеет какое-либо значение для результата.
Сначала вам нужно присоединиться к ним. Вы можете использовать обычное приложение linux, cat как в примере ниже:
Это сцепить все ваши test.zip.001 , test.zip.002 и т.д файлов в один большой, test.zip файл. Если у вас есть этот единственный файл, вы можете запустить unzip test.zip
Хорошо, мне это нравится . Прогресс . Но я действительно Linux n00b здесь. Я полагаю, x* это имя файла? И/hugefile это каталог? Какова цель символа тильды? Извините, что спрашиваю, что я подозреваю, это очень простые вопросы.
когда вы разделяете файлы, вы должны использовать префикс, такой как x_ (например: x_split1, x_split2, . ; как и суффиксы Windows file.001, file.002 . и т. д.), тильда представляет ваш домашний каталог./ огромный файл - это то же самое, что и / дом / Тим / огромный файл. ты разделил свои файлы? что такое имена разделенных файлов?
Я думаю, я вижу, где проблема возникнет, Spanned архив был создан в Windows, используя 7zip с расширением ZIP, так что он автоматически создает как TEST.zip.001 , TEST.zip.002 и TEST.zip.003 это означает, что разделение сильно отличается. Начинает казаться, что может быть проще добавить Linux на VMWare и создавать файлы здесь, тогда, по крайней мере, я имею дело только с 1 ОС. Вы можете использовать команду SPLIT для ЛЮБОГО типа файла? то есть изображения, аудио фильмы и т. д.? да, команда split работает с любым файлом. установить p7zip с помощью apt-get установить p7zip в Debian или yum установить p7zip в fedora, объединить файлы с помощью: cat TEST.zip. *> и распаковать их. 7za x archive Вероятно, лучше, если архив содержит структуру каталогов.unzip Утилита Linux на самом деле не поддерживает составные почтовые индексы. Из руководства :
Таким образом, вам нужно сначала соединить части, а затем восстановить результат. cat test.zip.* объединяет все файлы, вызываемые test.zip.* там, где подстановочный знак * обозначает любую последовательность символов; файлы нумеруются в лексикографическом порядке, который совпадает с числовым порядком благодаря нулям в начале. >test.zip направляет вывод в файл test.zip .
Если вы создали фрагменты, непосредственно разбив zip-файл, в отличие от создания zip-файла из нескольких частей с помощью официальной утилиты Pkzip, все, что вам нужно сделать, это соединить части.
Читайте также: