我想使用以下命令将电子书从 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 中的变量不会改变。
任何匹配的目录*.epub
也books/
将被传递到calibre-convert
。工具将如何处理该目录取决于它。您可能没有这样的目录;但如果有,请注意。
注意:我完全不知道calibre-convert
;我的命令中的语法只是从您的命令中派生出来的。