Linux zip создать многотомный архив

Многотомный архив tar 7zip

У каждого есть свой способ делать бекапы и архивы. У меня тоже есть свой 🙂

Неоднократно сталкивался с ситуациями, когда архив tar.gz, созданный в Linux (tar -czvf) , нормально в Linux открывающийся, в Windows либо не открывался либо все время говорил об ошибках конца архива и прочее. А я хотел, чтобы архивы сервера можно было бы спокойно просматривать на Windows. В итоге родился вариант: tar | 7za. Почему не просто tar? Мне не поддался tar в плане multi-volume (точнее, я не очень-то и хотел), да и не сжимает он все же сам. А почему тогда не просто 7za? А потому, что в man 7za белым по черному написано, что 7za не сохраняет прав доступа и владельцев файлов. Поэтому сначала tar, потом 7zip.

Ставим 7zip в CentOS:

# yum install p7zip

Задача: создать многотомный архив (например, по 100 Мб) какой-либо папки на сервере.

tar cf — /var/www | 7za u -si -t7z -mx=5 -v100m backup.7z

Tar готовит архивы, передает из по конвейеру 7zip-у (обратите внимание, в Linux 7zip запускается командой 7za), который:

u — update (варианты a — add, d — delete, e — extract, l — list, t — test, x — extract with full path)

-si — читает StdIn от tar.

-t7z — создает архив в формате 7zip.

-mx5 — степень сжатия (от 0 до 9). 0 — без сжатия, зато очень быстро. Например, с -mx0 архив получился 546 Мб, с -mx5 — 251 Мб, а с -mx2 — 285 Мб.

-v100m — тома по 100 Мб.

Имя архива: backup.7z. Если томов архива будет несколько, они будут называться backup.7z.001, backup.7z. 002, backup.7z.00 3 и т.д.

7za поддерживает пароли на архивы (-pYOUR_PAWWD), шифрует список файлов архива от просмотра и др. Я этим не балуюсь, но вам может оказаться полезным.

Помните шутку про бедуинов, которые, когда их спрашивают, сколько стоит покататься на верблюде, отвечают — бесплатно! Но вот «за слезть на землю» могут попросить денег. Так и сейчас, запаковать-то мы запаковали, а как извлечь данные из архива?

Распаковать архив 7zip можно так:

7za x backup.7z.001
tar tf имя_распакованного_архива

Или одной командой:

7za x -so backup.7z.001 | tar xf —

где -so указывает 7zip отправить вывод на StdOut, где его поймает tar и распакует в текущую директорию.

Источник

📑 Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint

Общее описание 7Z

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.

Читайте также:  Android sdk android home windows

Степень сжатия в новом формате 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

  • a: добавить файлы в архив, если архивного файла не существует, создает его.
  • b: эталонный тест системы средствами 7Z
  • d: удалить файлы из архива
  • e: извлечение файлов из архива без использования имен каталогов — все файлы оказываются в текущей директории
  • l: вывести список содержимого архива
  • rn: переименование файла внутри архива
  • t: проверка целостности архива
  • u: обновление файлов в архиве, если файла нет, создает новый
  • x: eXtract файлы с полными путями

Основные ключи команды 7Z

  • -t: тип архива, по умолчанию создаются файлы в формате 7z. Примеры, -tzip, -tgz
  • -ssw: включить файл в архив, даже если он в данный момент используется
  • -mx: уровень компрессии (0 — без компрессии-быстро, 9 -самая большая компрессия-медленно)
    • -mx0 — без компрессии
    • -mx1 — очень быстрая компрессия
    • ——
    • -mx9 — ультра компрессия
  • -p: пароль для архива
  • -o: задает директорию, например, в которую будут распакованы файлы
  • -sdel: удалить файлы после создания архива
  • -sfx: создание самораспаковывающегося sfx-архива
  • -v: разбивать архив на тома, (b — байты, k — килобайты, m — мегобайты, g — гигабайты), например: -v256m
  • -y: утвердительно ответить на все вопросы системы
  • -x: исключить файлы или папки из архива

Посмотреть все команды 7Z можно командой:

Чтобы посмотреть полную документацию(Англ.):

Примеры основного использования программы 7Z

Создание архива

Для создания архива используется команда a. Поддерживаемые форматы архивов для создания: 7Z, XZ, GZIP, TAR, ZIP и BZIP2. Если данный файл архива уже существует, он будет добавлять файлы в существующий архив, если нет — создаст. По умолчанию создается архив 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, номинальные значения должны быть близки к реальной частоте процессора.

Читайте также:  What is windows media format runtime

Источник

Linux zip создать многотомный архив

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

создание и распаковка архива с паролем через 7zip

Источник

Использование tar в Linux и FreeBSD для работы с архивами

Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.

Создание и распаковка архивов

Создать

Создание выполняется с ключом c. Синтаксис следующий:

tar -czvf archive.tar.gz /home/dmosk

* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).

Распаковать

Распаковка выполняется с ключом x с синтаксисом:

tar -xvf archive.tar.gz

Примеры

Распаковка .gz файла:

tar -xvf archive.tar.gz

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

tar -xvjf archive.tar.bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

yum install bzip2

apt-get install bzip2

pkg install bzip2

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

bzip2 -d archive.tar.bz2

tar -xvzf archive.tar.gzip

* ключ z отвечает за работу с gzip.

Распаковывается, как gzip:

tar -xvzf archive.tgz

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.

Распаковка без вложенной папки

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1

Читайте также:  Ping from linux server

* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:

tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.

Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:

tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/

* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp

Работа с архивами, разбитыми на части

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

Чтобы создать архив, разбитый на части, вводим команду:

tar -zcvf — /root | split -b 100M — root_home.tar.gz

* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.

В итоге мы получим, примерно, такую картину:

root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah

Чтобы собрать архив и восстановить его, вводим команду:

cat root_home.tar.gz* | tar -zxv

Описание ключей tar

Команды для действия

Ключ Описание
-A Добавление файлов в архив.
-c Создание нового архивного файла.
-d Показать отличающиеся данные между каталогом-исходником и содержимым архива.
—delete Удалить файлы внутри архива.
-r Добавить файлы в конец архива.
-t Показать содержимое архива.
-u Добавить файлы, которых нет в архиве.
-x Извлечь файлы из архива.

* нельзя использовать несколько вышеперечисленных ключей в одной команде.

Дополнительные опции

Ключ Описание
—atime-preserve Оставить прежнюю метку времени доступа для файла.
-b N Задать размер блока N x 512.
-C Смена каталога. По умолчанию, используется тот, в котором мы находимся.
—checkpoint Показать имена папок при чтении архивного файла.
-G Использование старого формата инкрементального резервирования при отображении или извлечения.
-g Использование нового формата инкрементального резервирования при отображении или извлечения.
-h Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки.
-i Игнорировать блоки нулей.
-j Использование bzip2.
—ignore-failed-read Игнорировать не читаемые файлы.
-k При распаковке, существующие файлы не заменяются соответствующими файлами из архива.
-L N Смена магнитной ленты после N*1024 байт.
-m При извлечении игнорировать время модификации объекта.
-M Многотомные архивы.
-N DATE Сохранять только более новые файлы относительно DATE
-O Направление извлекаемого на стандартный вывод.
-p Извлечение защищенной информации.
-P Не отбрасывает начальный слэш (/) из имен.
-s Сортировка файлов при извлечении.
—preserve Аналогично -ps
—remove-files Удалить исходные файлы после добавления в архив.
—same-owner Сохранить владельца при извлечении.
—totals Вывод байт при создании архива.
-v Протоколирование действий — отображение списка объектов, над которыми происходит действие.
-V NAME Создание архива на томе с меткой NAME.
—version Показать версию tar.
-w Требовать подтверждения для каждого действия.
-W Проверка архива после записи.
—exclude FILE Исключить файл FILE.
-X FILE Исключить файлы FILE.
-Z Фильтрует архив с помощью compress.
-z Использование gzip.

* актуальный список опций можно получить командой man tar.

Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:

yum install zip unzip

apt-get install zip unzip

pkg install zip unzip

* соответственно, для RPM based, deb based, BSD based.

zip -r archive.zip /home/dmosk

* создает архив каталога /home/dmosk в файл archive.zip.

Windows

В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.

Источник

Оцените статью