Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Выполнение однотипной задачи в структуре папок.  (Прочитано 1276 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vegance

  • Автор темы
  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Имеется cтруктура:
Europe
Europe/Europe-001
Europe/Europe-001/Europe-001.map
Europe/Europe-001/Europe-001.set
Europe/Europe-001/set
Europe/Europe-002
Europe/Europe-002/Europe-001.map
Europe/Europe-002/Europe-001.set
Europe/Europe-002/set
... и так далее. До 42.
Задача — в каждой папке Europe-* произвести команду tar -cf Europe-*.tar Europe-*.map set
Знаю что похожие задачи уже решались - к концу дня башка уже не варит.
Не понятно как задать шаблон для хождения по папкам.

Конечный вид должен быть
Europe
Europe/Europe-001
Europe/Europe-001/Europe-001.tar
Europe/Europe-002
Europe/Europe-002/Europe-002.tar

P.S. Хочу замутить большой атлас для Trekbuddy...
git://github.com/stillru/PersonalPakage.git

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
find /путь_до/Europe -type f -exec tar -cf {}.tar {} \; - создаст архивы рядом с файлами, т.е. в папке будут как файл, так и файл.tar, но заархивирует все файлы в каталоге Europe... Но, можно и так:
find ...../Europe -name *.map -type -f -exec tar -cf {}.tar {} \;
find ...../Europe -name *.set -type -f -exec tar -cf {}.tar {} \;
find ...../Europe -name set -type -f -exec tar -cf {}.tar {} \;
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Алгоритм такой.
1. Выделение подпапок из первичной папки
1.1 ls -l первичная папка
1.2 | grep "^d"
2. Выделить чистые папки
| awk ...
2. Для каждой полученной папки сделать tar.
Кормить tar по одной ложке (по одной строке, а не все сразу).

Пользователь решил продолжить мысль 24 Июля 2009, 10:01:13:
Чуть не забыл. Надо еще создать структуру каталогов на основе той же информации.
« Последнее редактирование: 24 Июля 2009, 10:01:13 от alexander.pronin »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Protopopulus, +1, я бы тоже делал через find.

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Цитировать
Protopopulus, +1, я бы тоже делал через find.
Спс. :) Я когда про возможности find узнал... Эх! Теперь если надо перекодировать пару альбомов mp3 на телефон - пжалста, надо переименовать файлы во вложенных каталогах - снова find. и т.д. и т.п... Полезная вешчь! :D
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Vegance

  • Автор темы
  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Спасибо -)
Сделал через Find
Осталось только откопировать все tar'ы в другую папку с сохранением структуры :-)
find ./ -maxdepth 2 -path "./Moscow-*/Moscow-*.map" -print -execdir tar --transform="s/\.\///" -cf {}.tar {} ./set \;
« Последнее редактирование: 26 Июля 2009, 08:14:59 от Vegance »
git://github.com/stillru/PersonalPakage.git

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.