web-dev-qa-db-fra.com

Existe-t-il un moyen de changer rapidement toutes les extensions de fichiers de tous les fichiers d'un dossier?

J'ai un grand dossier de livres audio .m4b qui, dans leur format actuel, ne peuvent pas être lus sur mon téléphone Android. Cependant, ils fonctionnent bien s’ils sont renommés .m4a

Existe-t-il une méthode rapide ou une commande de terminal permettant de renommer tous les fichiers .m4b d'un dossier en .m4a? Aucune conversion des fichiers n’est nécessaire, il vous suffit de renommer l’extension de fichier.

13
coversnail

Cela fera le travail pour vous.

rename 's/.m4b$/.m4a/' *.m4b

Pour un test, vous pouvez utiliser cette commande:

rename 's/.m4b$/.m4a/' *.m4b -vn

-v signifie "verbose" et il affichera les noms des fichiers quand il les renommera.

-n fera un test pour ne renommer aucun fichier, mais vous montrera une liste de fichiers qui seraient renommés.

15
Basharat Sialvi

Un moyen très rapide de renommer les fichiers, si c'est tout ce que vous devez faire et ne pas avoir besoin de les convertir en un autre format, consiste à utiliser les extensions de paramètres de Bash, qui sont très bien détaillées dans le wiki Bash =.

Il y a plusieurs façons de changer l'extension, mais j'utilise ici le paradigme simple ${var/original/replacement}:

for file in *.m4b; do mv -- "${file}" "${file/%m4b/m4a}"; done

Si vous voulez voir ce qui serait modifié par la commande, placez echoavant mvet les modifications seront répertoriées.

Il va sans dire que cet oneliner pourrait également être modifié pour d'autres fichiers. Vous pouvez également utiliser des extensions de paramètres pour supprimer les extensions de fichier.

10
user76204