次のコマンドを使用して、電子書籍をepub形式からmobi形式に変換したいと思います。calibre-convert books/*.epub books/*.mobi
しかし、私はすべてのファイルに同じファイル名を保持したいと思います。したがって、book1.epubはbook1.mobiを作成しますbook2.epubは変換後にbook2.mobiを作成します。これはコマンドラインで実行できますか?または、bashスクリプトを作成する必要がありますか?
( cd books && for file in *.epub; do calibre-convert "$file" "${file%epub}mobi"; done )
ここでの主なトリックは${file%epub}
です。これは、「$file
の最後にepub
が削除されている」ことを意味します。このようにして、${file%epub}mobi
は拡張子を変換します。
サブシェル((…)
)が使用されているので
file
変数は変更されません。*.epub
のbooks/
に一致するディレクトリは、calibre-convert
にも渡されます。ディレクトリをどう処理するかはツール次第です。おそらくそこにはそのようなディレクトリはありません。ただし、そうする場合は注意が必要です。
注:私はcalibre-convert
をまったく知りません。私のコマンドの構文は、単にコマンドから派生したものです。