Какой самый простой способ создания многокомпонентных архивов в Unix? - PullRequest
3 голосов
/ 25 июня 2009

tar|gzip замечательно, за исключением того, что файлы могут стать слишком большими, и их передача по сети усложняется. Архиваторы эпохи DOS обычно использовались для создания многочастных архивов, по одному на дискету, но, похоже, gzip не имеет такой возможности (из-за философии потоковой передачи Unix).

Итак, каков самый простой и надежный способ сделать это в Linux (и, очевидно, с размером архива ~ 2 ГБ, а не 1,44 МБ)?

Ответы [ 4 ]

3 голосов
/ 25 июня 2009

вы можете разбить его на части, используя /usr/bin/split (с опцией "-b") - читайте 'man split'

2 голосов
/ 25 июня 2009

Я больше не использую gzip для архивирования, просто для распаковки архивов других людей, которые еще не были конвертированы: -)

7zip имеет сжатие безумного уровня (хотя я не ставил его во все сценарии), а также поддерживает создание томов, что отвечает на ваш конкретный вопрос.

2 голосов
/ 25 июня 2009

Типичное решение Unix будет "split -b", но эта опция не очень надежна. Если какой-либо из файлов поврежден или утерян, с этого момента вы теряете все.

Вы можете использовать split в сочетании с bzip2, который часто может восстановить поврежденный архив в определенной степени.

Гораздо более безопасный способ - использовать parchive (более конкретно PAR2). Он создаст дополнительные файлы в стиле RAID для восстановления после любого повреждения разделов файлов. Для получения дополнительной информации посмотрите пакет quickpar, parchive.sf.net, par2 на дистрибутивах Linux ...

1 голос
/ 21 ноября 2013

Вы можете использовать tar и создать многокомпонентный архив. Хитрость заключается в том, что вы должны указать имена такого количества архивных файлов, которое вы хотите сгенерировать, каждый с отдельным флагом -f. К счастью, есть простой способ сделать это. Допустим, вы ожидаете получить не более 10 архивных файлов. Тогда вы можете использовать эту команду:

tar -c -M -L 2G -farchive{1..10} <sourcefile>

Это расширится до 10 флагов с пронумерованным именем файла архива. Чтобы извлечь, используйте

tar -x -M -farchive{1..10}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...