批量转换文件并保留名称

批量转换文件并保留名称

我想使用以下命令将电子书从 epub 格式转换为 mobi 格式: calibre-convert books/*.epub books/*.mobi

但我想为所有文件保留相同的文件名。因此,转换后,book1.epub 将创建 book1.mobi,book2.epub 将创建 book2.mobi。这可以在命令行中执行吗?还是我必须编写 bash 脚本?

答案1

( cd books && for file in *.epub; do calibre-convert "$file" "${file%epub}mobi"; done )

这里的主要技巧是,${file%epub}这意味着“$file删除epub末尾的”。这种方式${file%epub}mobi翻译了扩展名。

使用子 shell ( (…)) 来

  • 主 shell 的当前工作目录保持不变
  • 并且file主 shell 中的变量不会改变。

任何匹配的目录*.epubbooks/将被传递到calibre-convert。工具将如何处理该目录取决于它。您可能没有这样的目录;但如果有,请注意。

注意:我完全不知道calibre-convert;我的命令中的语法只是从您的命令中派生出来的。

相关内容