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

Исходное сообщение
"Bash Brainstorm #3 "

Отправлено pavlinux , 12-Дек-13 01:18 
Архивация файлов!

Дано: Все файлы  в каталоге /usr

Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего N мегабайт.
       N задаётся при запуске скрипта. Для начала можете принять N, как 1/10 от общего размера /usr;

Спец. бонус для тех, кто сделал первую часть: Собрать в минимальное количество, но сжатых (lzma -9) архивов.

Язык: Bash

С наступающим Новым Годом!

[сообщение отредактировано модератором]


Содержание

Сообщения в этом обсуждении
"Bash Brainstorm #3 "
Отправлено ACCA , 12-Дек-13 03:41 
> Архивация файлов!

Жулик. Это же задача по укладке рюкзака.


> Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего
> N мегабайт.

Если тебе нужен строгий минимум, то огребай NP-complete в полный рост.

А чем тебе не угодил split, или там tar -M -L -F renameit?


"Bash Brainstorm #3 "
Отправлено pavlinux , 12-Дек-13 14:14 
>> Архивация файлов!
> Жулик. Это же задача по укладке рюкзака.

Ну если углубляться в теорию - это NP-полная задача (что ещё нужно доказать),
в примерах летает как задача об "оптимальной упаковке". В примере с архиватором
нужно ещё учитывать сжатый размер. .... дальше сами, и так много наболтал.  

> А чем тебе не угодил split, или там tar -M -L -F renameit?

Мне это ваще не нужно, народ мучаю.


"Bash Brainstorm #3 "
Отправлено Andrey Mitrofanov , 12-Дек-13 14:45 
>>> Архивация файлов!
> нужно ещё учитывать сжатый размер. .... дальше сами, и так много наболтал.

tar cC /usr . |parallel -P -2 --pipe --recend '' -k xz -1 | ...

Ну, дальше сам, а то тебе ещё и потоковый split напиши.

>> А чем тебе не угодил split, или там tar -M -L -F renameit?
> Мне это ваще не нужно, народ мучаю.

Ай, затеник!


"Bash Brainstorm #3 "
Отправлено LSTemp , 14-Дек-13 08:25 
> Архивация файлов!
> Дано: Все файлы  в каталоге /usr
> Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего
> N мегабайт.

а какая FS? для максимално допустимого размера единичного tar-архива?


"Bash Brainstorm #3 "
Отправлено LSTemp , 14-Дек-13 08:28 
>> Архивация файлов!
>> Дано: Все файлы  в каталоге /usr
>> Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего
>> N мегабайт.
> а какая FS? для максимално допустимого размера единичного tar-архива?

ADD
сорри-прозяблил - там ч/з N размер идет.



"Bash Brainstorm #3 "
Отправлено LSTemp , 14-Дек-13 08:26 
> Архивация файлов!
> Дано: Все файлы  в каталоге /usr

почему /usr сразу. давайте винду придвинем к этому интересному вопросу)


> Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего
> N мегабайт.
>        N задаётся при запуске скрипта.
> Для начала можете принять N, как 1/10 от общего размера /usr;
> Спец. бонус для тех, кто сделал первую часть: Собрать в минимальное количество,
> но сжатых (lzma -9) архивов.
> Язык: Bash
> С наступающим Новым Годом!
> [сообщение отредактировано модератором]


"Bash Brainstorm #3 "
Отправлено LSTemp , 14-Дек-13 08:32 
>[оверквотинг удален]
> Дано: Все файлы  в каталоге /usr
> Нужно: Собрать все файлы в минимальное количество tar-архивов размера, не превышающего
> N мегабайт.
>        N задаётся при запуске скрипта.
> Для начала можете принять N, как 1/10 от общего размера /usr;
> Спец. бонус для тех, кто сделал первую часть: Собрать в минимальное количество,
> но сжатых (lzma -9) архивов.
> Язык: Bash
> С наступающим Новым Годом!
> [сообщение отредактировано модератором]

а какое нахер?... тар не пакует. финиш. практическая ценность решения задачи=0.

PS
давно было - ленты из москвы возили на электричках - раз по 5-ть ездили (в фольгу и подобную херню бобины заворачивали)...



"Bash Brainstorm #3 "
Отправлено pavlinux , 14-Дек-13 19:56 
> а какое нахер?... тар не пакует. финиш. практическая ценность решения задачи=0.

Да, да, да - главное придумать отмазку. TAR - пакует. (ой, звиняй, коэф. сжатия единичный)

На тебе N DVD (по 4700372992 байт), ехай в колхоз за 500 километров, сделай бэкап.  
Там есть N*100 файлов аккурат на N*4700372992 байт, файлы примерно по N*370-N*382 мега,
но ровно влезают на N DVD.


Мне вот было в падлу катать по Москве два раза, когда бэкап Оракла влезал
на 5 DVD-DL, но по фалам я заипался сортировать в ручную и всегда 300-500
мегов не влазило. Я написал софитну на перле, делающая сию сортировку.
Позже  добавил код для работы со сжатыми данными.  

Как саипётесь, покажу перловый код. :)


"Bash Brainstorm #3 "
Отправлено LSTemp , 20-Дек-13 18:02 
>[оверквотинг удален]
> На тебе N DVD (по 4700372992 байт), ехай в колхоз за 500
> километров, сделай бэкап.
> Там есть N*100 файлов аккурат на N*4700372992 байт, файлы примерно по N*370-N*382
> мега,
> но ровно влезают на N DVD.
> Мне вот было в падлу катать по Москве два раза, когда бэкап
> Оракла влезал
> на 5 DVD-DL, но по фалам я заипался сортировать в ручную и
> всегда 300-500
> мегов не влазило. Я написал софитну на перле, делающая сию сортировку.

уже понятнее - конкретное применение

> Позже  добавил код для работы со сжатыми данными.

АХТУНГ!!! подсказка. )

> Как саипётесь, покажу перловый код. :)

PS
иёпусь редко в последнее время, что напрягает - видимо надо меньше времени работе уделять. )