У меня есть много epub, поскольку папки должны преобразовать его в сжатый .epub, поэтому я создал bash-скрипт для этого ... который сжимает папку epub в zip, а затем переименовывает ее в .epub с помощью 7-zip

Кстати, я пытался использовать zip вместо 7-zip, но я сталкиваюсь с проблемой с некоторыми файлами, такие как арабские символы содержимого, такие как

   السوق في الغرب.xhtml

после сжатия, используя zip, я получил файл, переименованный во что-то нечитаемое, например

  #?#?##?#??#####?#?.xhtml

Причиняя повреждение файла epub для этого, я использую 7zip, и, кажется, это нормально, нет проблем, но у меня есть небольшая проблема, прежде чем в zip я использовал это

zip -X file.zip mimetype
zip -rg file.zip * -x mimetype
mv file.zip file.epub

и работает, за исключением вышеуказанной проблемы, теперь я пытаюсь сделать то же самое с 7z, но я сталкиваюсь с проблемой с исключением исключенного мной mimetype и ошибкой Ошибка: неверная командная строка

вот мой сценарий

for i in *; do
7z a -tzip $i.zip mimetype
7z a -tzip $i.zip * -x!mimetype
rename *.zip *.epub

заранее спасибо

1 ответ1

0

Вы должны экранировать восклицательный знак из-за оболочки, например так:

7z a -tzip $i.zip * -x\!mimetype

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .