Scripting
使用萬用字元優雅地將數千個 epub 文件轉換為 mobi
我正在為 1000 個文件執行以下命令:
ebook-convert <name-of-first-file>.epub <name-of-first-file>.mobi ebook-convert <name-of-second-file>.epub <name-of-second-file>.mobi
顯然,與其手動對 1000 個文件執行此操作,不如為這項工作編寫一個 bash 腳本。
我想知道在 Linux 中是否有更簡單的方法來做這樣的事情,一個看起來像的小命令
ebook-convert *.epub *.mobi
您能否以類似的方式使用萬用字元,適用於上述場景?
您不能直接使用萬用字元執行此操作,但
for
循環可以讓您到達那裡:for epub in ./*.epub; do ebook-convert "${epub}" "${epub%.epub}.mobi"; done
如果您的文件名不包含空格字元,並且通常可以由 Make 和 shell 安全地處理,則可以使用 GNU Make,而不是 shell 腳本;把它放在一個
Makefile
:all: $(patsubst %.epub,%.mobi,$(wildcard *.epub)) %.mobi : %.epub ebook-convert ./$< ./$@
然後執行
make
,這將確保所有.epub
文件都轉換為.mobi
文件。您可以根據需要重複執行此程序以更新文件 - 它只會建構失去或比源文件舊的文件。(確保該ebook-convert
行以製表符開頭,而不是空格。)