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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Поиск и удаление файлов внутри архивов  (Прочитано 1754 раз)

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

Оффлайн Никита

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Доброго времени суток,
столкнулся со следующей проблемой, мне нужно каким то образом автоматизировать поиск и удаление определенных файлов и папок внутри архивов. Конкретно внутри архивов epub хотелось бы поудалять шрифты и *.css файлы что бы читалка не подгружала их а использовала собственные ее шрифты и *.css файл. Сейчас просто открываю файл epub архиватором и удаляю эти файлы из него вручную. Может можно это делать коллективно через какой нибудь файлменеджер или скриптом?
Заранее спасибо

Оффлайн Rakshas

  • Участник
  • *
  • Сообщений: 147
    • Просмотр профиля
Думаю, проще скриптом по алгоритму:
- получаем имя архива из стандартного ввода
- распаковываем архив в отдельную папку (где-нибудь в temp), запоминая оригинальное название и местоположение
- удаляем, что не надо
- запаковываем на исходное место
- удаляем папку
Консольный архиватор должен найтись в пакете epub-utils. Еще надо почитать man по нему, может он может сам удалять из архива файлы, при задании соотв. ключа.
Lenovo x201i + Ubuntu 10.04.2 x64 + IceWM
IRU Brava 4315 + Ubuntu 10.04.2 x32 + IceWM

Оффлайн Никита

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Спасибо за ответ, из консоли unzip распаковывает, я так понимаю epub это просто zip архив с измененным расширением? что бы распаковать я просто выделял все файлы, кликал правой кнопкой мышки -> распаковать, получались одноименные с архивами папки. В них удалял через поиск ненужное. А как можно потом разом каждую папку опять запаковать в архив совпадающий с ней по имени? я так понял я могу запаковать в архивы с расширением zip  а потом просто все скопом переименовать в *.epub.

andrey_p

  • Гость
calibre. Она с epub много штучек может вытворять (распаковка, редактирование, упаковка). Да и вообще супер-программа для электронных книжек.

Оффлайн Никита

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Спасибо, через calibre нашел как открывать папкой epub книги, но опять же по одной делается, или там можно через нее как то стилевые файлы и шрифты у всех epubких книг разом поудалять?

andrey_p

  • Гость
Вот этот quick & dirty скрипт удаляет css. Шрифты не удаляет, потому как там самые разные расширения у имен файлов шрифтов могут быть (и они могут быть в разных местах расположены). Но удаление css я думаю будет достаточно.

Если не можешь разобраться в скрипте, то есть совсем нет навыков работы с терминалом и скриптами, то лучше по одному через calibre. В любом случае сначала сделай резервную копию.

#!/bin/sh

# here must be your own dirs

epubs=/home/app/tmp/epub
epubs_new=/home/app/tmp/epub_new

mkdir -p "$epubs_new"

rm -rf work && mkdir work && cd work

for f in "$epubs"/*; do
    epubname=`basename "$f"`
    echo "=== $epubname ==="
    unzip -q "$f"
    find . -name '*.css' | xargs rm -v
    # find . -name '*.font' -name '*.ttf' -name '*.I DONT NOW' | xargs rm
    zip -qr "$epubname" *
    mv -v "$epubname" "$epubs_new"
    rm -rf *
done

cd .. && rmdir work
« Последнее редактирование: 15 Май 2011, 08:04:24 от andrey_p »

Оффлайн Никита

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Спасибо большущее за скрипт! Со шрифтами у меня проще, тут они вроде во всех книгах хранятся в папке fonts, так что просто ищу и удаляю ее, но это действительно не суть, главное то, что *.css удаляется. Еще раз спасибо!

 

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