Linux zip разбить на части

Обновлено: 05.07.2024

Краткая памятка по работе с архиваторами (программами управления файловыми архивами) из консоли в Linux.

    В двух словах о самом формате tar

Например чтобы запаковать текущую папку в 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, все, что вам нужно сделать, это соединить части.

Читайте также: