The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Bash Brainstorm #3 "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Языки программирования)
Изначальное сообщение [ Отслеживать ]

"Bash Brainstorm #3 "  +/
Сообщение от pavlinux (ok) on 12-Дек-13, 01:18 
Архивация файлов!

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

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

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

Язык: Bash

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Bash Brainstorm #3 "  +/
Сообщение от ACCA (ok) on 12-Дек-13, 03:41 
> Архивация файлов!

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


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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Bash Brainstorm #3 "  –1 +/
Сообщение от pavlinux (ok) on 12-Дек-13, 14:14 
>> Архивация файлов!
> Жулик. Это же задача по укладке рюкзака.

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

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

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

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

Ай, затеник!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

5. "Bash Brainstorm #3 "  +/
Сообщение от LSTemp (ok) on 14-Дек-13, 08:26 
> Архивация файлов!
> Дано: Все файлы  в каталоге /usr

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


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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

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


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Bash Brainstorm #3 "  +/
Сообщение от pavlinux (ok) on 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
мегов не влазило. Я написал софитну на перле, делающая сию сортировку.
Позже  добавил код для работы со сжатыми данными.  

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

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

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

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

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

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру