Как разделить zip-архив на части при создании [Linux]
Есть большие папки (заведомо больше 2Гб, что является пределом для размера зип-архива по спецификации). Нужно их заархивировать, причем, создав многотомный архив (размеры частей по 500МБ, например).
Весь man zip перечитал — ничего похожего не увидел. zipsplit разбивает на части уже готовый архив (но я не смогу создать его >2ГБ, чтобы потом разбить).
Другие форматы архивов не подходят по многим причинам.
Есть выход из этой проблемы?
Если важно, debian lenny.
Спасибо.
Пишу примерно следующее (1 — это папка, в которой лежат нужные для архивирования файлы)
tar -v -c -M --tape-length=512000 --file=archive-part1.tar 1/
В таком случае он создает архив archive-part1.tar просит вставить следующий том и ввести имя. Как-то можно его попросить делать это автоматически и сгенерить имя вроде archive-part2.tar? Скрипт этот по крону будет запускаться, нужно его автоматизировать.
Попробуйте 7-zip (пакет p7zip, там есть опция -vXXm как раз разбиение на многотомник, но только для своего формата 7z(!), в zip эта фича не поддерживается, недоделан он там).
Из плюсов очень богатый функционал и многоплатформенность, так что может быть подойдет, см. man 7zr
Не, 7zip не подходит по двум причинам — во-первых, очень медленный, по сравнению с зипом ( zenux.ru/media/other/Сравнение_архиваторов_Linux__26-03-2010-14-13-22.gif ) — у меня именно медиа-файлы. Во-вторых, требует софта на клиенте, а зип открывается на всех чистых клиентских системах (winXP+, linux, macos). Плюс, в зипе платформонезависимая кодировка имен файлов
Согласен, но без конкретики сложно что-то подсказать. Возможно, для медиа-файлов лучше включить режим «без сжатия» (не знаю типа файлов у вас, но обычно они неохотно ужимаются и проще порезать на части в архиве чем тратить время и цпу на сжатие) и результат теста будет немного иной?
Другой вариант если файлы достаточно мелкие, набирать объем списком из Н-файлов (например, 100 файлов по 45 мб), но это придется повозиться с реализацией в шелл-скрипте, опять же при условии что размер 1-го файла не превысит лимит в 2 гига.
Да, я и так ставлю степень сжатия 0, мне не сжатие нужно, а чтобы клиент мог скачать все файлы одним архивом. Впрочем, тут проблема больше в клиентском софте — не хочется навязывать ставить еще специфический архиватор.