Tengo una gran carpeta de audiolibros .m4b que en su formato actual no se reproducirá en mi teléfono Android. Sin embargo, funcionan bien si se les cambia el nombre a .m4a
¿Existe algún método rápido o comando de terminal que pueda cambiar el nombre de cada archivo .m4b de una carpeta a .m4a? No es necesario realizar ninguna conversión de los archivos, simplemente cambiar el nombre de la extensión del archivo funciona perfectamente bien.
command-line
nautilus
file-format
cubierta
fuente
fuente
rename
es un script PERL y acepta expresiones regulares. Los sistemas Debian también tienen unrename.ul
comando como parte deutil-linux-ng package
. Si Perl no está instalado (ok, muy poco probable;))rename
tampoco lo está.Respuestas:
Esto hará el trabajo por ti.
rename 's/.m4b$/.m4a/' *.m4b
Para una ejecución de prueba, puede usar este comando:
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
significa "detallado" y generará los nombres de los archivos cuando los cambie de nombre.-n
realizará una ejecución de prueba en la que no cambiará el nombre de ningún archivo, pero le mostrará una lista de archivos que cambiarían de nombre.fuente
Una forma muy rápida de cambiar el nombre de los archivos, si eso es todo lo que necesita hacer, y no necesita convertirlos a otro formato, es usar las expansiones de parámetros de Bash, que se detallan muy bien en la wiki de Bash .
Hay varias formas diferentes de cambiar la extensión, pero utilizo aquí el
${var/original/replacement}
paradigma simple :Si desea ver qué cambiaría el comando, colóquelo
echo
antesmv
y se enumerarán los cambios.No hace falta decir que este oneliner también podría modificarse para otros archivos, y también puede usar expansiones de parámetros para eliminar también las extensiones de archivo.
fuente
*.m4b
. De lo contrario, obtendrá el errorargument list too long
.for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done