LINUX.ORG.RU

Создание архивов zip по размеру


0

0
Есть каталоги с файлами JPEG объемом от 100 МБ. Нужен скрипт (желательно bash) для создания архивов zip объемом не более 100 МБ. Многотомный rar, многотомный 7-zip (все его форматы), split и прочее не подходят, нужны независимые zip архивы не более 100 МБ, которые могут быть открыты любым распаковщиком, в том числе "zipfldr.dll"
anonymous
Ответ на: комментарий от anonymous
> >100 МБ это размер исходных данных или сжатых
> 100 - сжатых, исходные больше 100


Так в условии задачи стояло сделать зип не более 100Мб. Что то в консерватории не так.
andreyu ★★★★★
()
Ответ на: комментарий от anonymous
>Условие - сделать многотомный zip архив по 100 МБ, но "тома" должны быть независимыми

Если исходные JPEG-файлы более 100Мб каждый, то это невозможно в принципе
frame ★★★
()
Ответ на: комментарий от anonymous
Ну я бы вывел среднюю степень сжатия по больнице. После чего помножил на "запас" погрешности. И полученное количество файлов пихал бы в zip.
Anoxemian ★★★★★
()
Afaik, коэффициент сжатия уже упакованного jpeg стремится к 1, так что можно смело вешать 100Мб жпегов и класть в архив.
as33 ★☆☆
()
А в чем проблема?

Делаем так:

1) zip archive01.zip photo001.jpg

2) zip -g archive01.zip photo002.jpg

3.1) если `du -h archive01.zip` меньше 100 метров
- переходим к п.2, увеличиваем photo на 1

3.2) если `du -h archive01.zip` меньше 100 метров
- переходим к п.1, увеличиваем photo на 1, archive на 1

Всё.
Igron ★★★★★
()
Ответ на: комментарий от Igron
> 3.2) если `du -h archive01.zip` меньше 100 метров

s/меньше/больше/
Igron ★★★★★
()
Ответ на: комментарий от Igron
А если после добавления файла в архив оно станет больше 100мб? Переходить к следующему архиву нельзя, условие задачи не будет выполняться. Надо либо удалять предыдущий, либо вместо 100мб поставить проверку на 95мб например.
anonymous
()
Ответ на: комментарий от anonymous
> split и прочее не подходят

а zipsplit? :)

Usage: zipsplit [-tipqs] [-n size] [-r room] [-b path] zipfile

-n make zip files no larger than "size" (default = 36000)

anonymous
()
Ответ на: комментарий от anonymous
> А если после добавления файла в архив оно станет больше 100мб? Переходить к следующему архиву нельзя, условие задачи не будет выполняться. Надо либо удалять предыдущий, либо вместо 100мб поставить проверку на 95мб например.

Ну да. А вообще выше уже сказали про zipsplit.
Igron ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.