2009-06-25 2 views
3

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

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

ответ

2

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

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

3

вы можете разбить его на куски с помощью /usr/bin/split (с «-b») - читать «человек» раскол

+3

И присоедините их к кошке - инструменту, созданному для соединения, хотя это не совсем очевидно, поскольку все начинают использовать его в качестве инструмента для отображения файлов на консоли – 2009-06-25 09:53:42

2

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

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

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

1

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

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

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

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

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

Смежные вопросы