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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.