2 votos

Lote convertir archivos manteniendo el nombre

Quiero usar el siguiente comando para convertir libros electrónicos de formato epub a formato mobi: calibre-convert books/*.epub books/*.mobi

pero quiero conservar el mismo nombre de archivo para todos los archivos. Entonces, book1.epub creará book1.mobi book2.epub creará book2.mobi después de la conversión. ¿Es esto factible en la línea de comando? o tengo que escribir un script bash?

6voto

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

El principal truco aquí es ${file%epub} que significa "$file con epub al final quitado". De esta manera ${file%epub}mobi se traduce en la extensión.

Una subshell ((…)) se utiliza para

  • el directorio de trabajo actual de la cáscara principal se mantiene intacta
  • y el file variable en la cáscara principal no cambia.

Cualquier directorio que coincida con *.epub en books/ pasará a calibre-convert como bueno. Es la herramienta ¿qué va a hacer con el directorio. Usted probablemente no tiene tales directorio de allí; pero si lo hace, se advirtió.

Nota: no sé calibre-convert ; la sintaxis en mi comando es simplemente la derivada de su comando.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: