URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9554
[ Назад ]

Исходное сообщение
"bash распил большого каталога на несколько dvd"

Отправлено richit , 02-Окт-12 15:23 
Коллеги. Видимо нехватка витаминов сказывается...
Как распилить народными средствами каталог из 33Гб на несколько по 4.5Гб для записи на dvd.

Содержание

Сообщения в этом обсуждении
"bash распил большого каталога на несколько dvd"
Отправлено ДорогойДрук , 02-Окт-12 15:41 
а в чем задача?

tar/split?
или нужно максимально эффективно разбить файлы по разным болванкам, чтобы неиспользованного места было минимум?


"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 16:23 
> а в чем задача?
> tar/split?
> или нужно максимально эффективно разбить файлы по разным болванкам, чтобы неиспользованного
> места было минимум?

tar/split наводит на размышление, но конечный получатель без untar/unsplit должен все это скопировать в один каталог и забыть


"bash распил большого каталога на несколько dvd"
Отправлено Andrey Mitrofanov , 02-Окт-12 15:43 
> Коллеги. Видимо нехватка витаминов сказывается...
> Как распилить народными средствами каталог из 33Гб на несколько по 4.5Гб для
> записи на dvd.

Если есть _свободных 33Гб + 33Гб + 4.7Гб / МАКС., то ... элементарно, иначе ... ну, не на баше же?!

Первые 33Гб: tar во временный архив, вторые - сплит этого архива на куски по 2.295.000*2К, +4.7Гб - нарезать спличенные в .iso по одному (да, вижу, что после вторых +33Гб, первые можно сэкономить, или писать куски прямо на dvd без .iso... //33Гб+33Гб free, max.)


"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 16:18 
>> Коллеги. Видимо нехватка витаминов сказывается...
>> Как распилить народными средствами каталог из 33Гб на несколько по 4.5Гб для
>> записи на dvd.
> Если есть _свободных 33Гб + 33Гб + 4.7Гб / МАКС., то ...
> элементарно, иначе ... ну, не на баше же?!
> Первые 33Гб: tar во временный архив, вторые - сплит этого архива на
> куски по 2.295.000*2К, +4.7Гб - нарезать спличенные в .iso по одному
> (да, вижу, что после вторых +33Гб, первые можно сэкономить, или писать
> куски прямо на dvd без .iso... //33Гб+33Гб free, max.)

Ну вот Google уже проиндексировал ) эту ветку.

задача в чем, передать 33Гб на dvd дисках, чтобы девочка на том конце почтовой пересылки без зауми скопировала все в один каталог с них и все работало.


"bash распил большого каталога на несколько dvd"
Отправлено anonymous , 02-Окт-12 16:42 
>[оверквотинг удален]
>> Если есть _свободных 33Гб + 33Гб + 4.7Гб / МАКС., то ...
>> элементарно, иначе ... ну, не на баше же?!
>> Первые 33Гб: tar во временный архив, вторые - сплит этого архива на
>> куски по 2.295.000*2К, +4.7Гб - нарезать спличенные в .iso по одному
>> (да, вижу, что после вторых +33Гб, первые можно сэкономить, или писать
>> куски прямо на dvd без .iso... //33Гб+33Гб free, max.)
> Ну вот Google уже проиндексировал ) эту ветку.
> задача в чем, передать 33Гб на dvd дисках, чтобы девочка на том
> конце почтовой пересылки без зауми скопировала все в один каталог с
> них и все работало.

а файлы в каталоге могут быть больше 4.7 гб?


"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 16:46 
>[оверквотинг удален]
>>> элементарно, иначе ... ну, не на баше же?!
>>> Первые 33Гб: tar во временный архив, вторые - сплит этого архива на
>>> куски по 2.295.000*2К, +4.7Гб - нарезать спличенные в .iso по одному
>>> (да, вижу, что после вторых +33Гб, первые можно сэкономить, или писать
>>> куски прямо на dvd без .iso... //33Гб+33Гб free, max.)
>> Ну вот Google уже проиндексировал ) эту ветку.
>> задача в чем, передать 33Гб на dvd дисках, чтобы девочка на том
>> конце почтовой пересылки без зауми скопировала все в один каталог с
>> них и все работало.
> а файлы в каталоге могут быть больше 4.7 гб?

неа... максимум 250Мб


"bash распил большого каталога на несколько dvd"
Отправлено Andrey Mitrofanov , 02-Окт-12 17:24 
> неа... максимум 250Мб

Тогда сортировать их по размеру и набивать самыми большими из "очереди", сколько влезет на один DVD, добивать до полного DVD первыми из списка, какие влезут, прополоскать-повторить.

В принципе, можно и многопроходности добавить, пооптимизировать, но обычно последний диск полупустой, поэтому чаще всего заморачиваться не имеет смысла (по сложности решения, в частности -- против +1болванки/иногда).


"bash распил большого каталога на несколько dvd"
Отправлено Andrey Mitrofanov , 02-Окт-12 17:50 
>> неа... максимум 250Мб
> Тогда сортировать их по размеру и набивать самыми большими из "очереди", сколько

(*)первый проход.

> В принципе, можно и многопроходности добавить, пооптимизировать, но обычно последний диск
> полупустой, поэтому чаще всего заморачиваться не имеет смысла (по сложности решения,
> в частности -- против +1болванки/иногда).

И кста, родилось решение[ну, дебютная идея...] для олимпиады по программированию для 6 класса: после первого прохода. Смотреть, не _больше ли_ свободное место на дисках, кроме последнего, объёма файлов (с учётом накладных) на последнем диске. Если меньше -- делать ещё проход с перетрясанием [относительно] крупных с последнего на предыдущие (и мелких, вытесненных ими - на ?следующие). А вдруг -1диск вытрясется... Правда, вот с перебором и условием окончания -- у меня не очень.


"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 18:20 
#!/bin/bash
    N=1
find ./ -type f | while read file; do
        size=`du -s ../"dvd$N" | awk '{print $1}'`
    echo "$size"
    if [ "$size" -le 4400000 ]
    then
    cp --parents "$file" ../dvd"$N" # ох... и зациклил я его ./ )))
        else let N=$N+1
    fi;
done

вот такая вот партянка. надо допилить напильником. ваши предложения, коллеги.
mkdir ../dvd"$N" - это понятно...


"bash распил большого каталога на несколько dvd"
Отправлено anonymous , 02-Окт-12 21:07 
>[оверквотинг удален]
>  echo "$size"
>  if [ "$size" -le 4400000 ]
>  then
>  cp --parents "$file" ../dvd"$N" # ох... и зациклил я его ./
> )))
>   else let N=$N+1
>  fi;
> done
> вот такая вот партянка. надо допилить напильником. ваши предложения, коллеги.
> mkdir ../dvd"$N" - это понятно...

Размер лучше stat'ом проверять. И без авка можно будет обойтись.


"bash распил большого каталога на несколько dvd"
Отправлено richit , 03-Окт-12 09:36 
>[оверквотинг удален]
>>  if [ "$size" -le 4400000 ]
>>  then
>>  cp --parents "$file" ../dvd"$N" # ох... и зациклил я его ./
>> )))
>>   else let N=$N+1
>>  fi;
>> done
>> вот такая вот партянка. надо допилить напильником. ваши предложения, коллеги.
>> mkdir ../dvd"$N" - это понятно...
> Размер лучше stat'ом проверять. И без авка можно будет обойтись.

простите, man stat не дает объема каталога или я не туда смотрю сутра пораньше.


"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 18:27 
>[оверквотинг удален]
>> В принципе, можно и многопроходности добавить, пооптимизировать, но обычно последний диск
>> полупустой, поэтому чаще всего заморачиваться не имеет смысла (по сложности решения,
>> в частности -- против +1болванки/иногда).
> И кста, родилось решение[ну, дебютная идея...] для олимпиады по программированию для 6
> класса: после первого прохода. Смотреть, не _больше ли_ свободное место на
> дисках, кроме последнего, объёма файлов (с учётом накладных) на последнем диске.
> Если меньше -- делать ещё проход с перетрясанием [относительно] крупных с
> последнего на предыдущие (и мелких, вытесненных ими - на ?следующие). А
> вдруг -1диск вытрясется... Правда, вот с перебором и условием окончания --
> у меня не очень.

Легенды

Легенда гласит, что в Великом храме города Бенарас, под собором, отмечающим середину мира, находится бронзовый диск, на котором укреплены 3 алмазных стержня, высотой в один локоть и толщиной с пчелу. Давным-давно, в самом начале времён, монахи этого монастыря провинились перед богом Брахмой. Разгневанный, Брахма воздвиг три высоких стержня и на один из них возложил 64 диска. Брахма поместил на один из стержней 64 диска из чистого золота, причем так, что каждый меньший диск лежит на большем.

Как только все 64 диска будут переложены со стержня, на который Брахма сложил их при создании мира, на другой стержень, башня вместе с храмом обратятся в пыль и под громовые раскаты погибнет мир.

Количество перекладываний в зависимости от количества колец вычисляется по формуле 2^n-1.

Число перемещений дисков, которые должны совершить монахи, равно 18 446 744 073 709 551 615. Если бы монахи, работая день и ночь, делали каждую секунду одно перемещение диска, их работа продолжалась бы 584 миллиарда лет.

В информатике задачи, основанные на легенде о Ханойской башне, часто рассматривают в качестве примера использования рекурсивных алгоритмов и преобразования их к не рекурсивным.


"bash распил большого каталога на несколько dvd"
Отправлено Andrey Mitrofanov , 02-Окт-12 17:27 
>чтобы девочка на том конце почтовой пересылки без зауми скопировала все

А вот для этого ещё нужен SETUP.EXE со "Вставьте следующий диск [Готово]" и autorun.inf.


"bash распил большого каталога на несколько dvd"
Отправлено Andrey Mitrofanov , 02-Окт-12 17:32 
> А вот для этого ещё нужен SETUP.EXE со "Вставьте следующий диск [Готово]"
> и autorun.inf.

Многотомный SFX WinRar, как бы это ни было?.. :|  (Многотомный SFX 7-Zip??)


"bash распил большого каталога на несколько dvd"
Отправлено dima , 02-Окт-12 18:34 

купить флэшку  на 32-64Гб

"bash распил большого каталога на несколько dvd"
Отправлено richit , 02-Окт-12 18:51 
> купить флэшку  на 32-64Гб

об этом тоже думали, но как всегда жаль денег )