(modifié le 12 janvier 2016 à 19:29)

Pour une raison X ou Y il est parfois nécessaire de renommer des noms de fichiers de façon massive.

Voyons comment nous pouvons réaliser cette modification en une seule ligne dans un terminal Linux.

Une simple ligne de commande suffit à réaliser la modification :

for fichiers in *.ext; do mv "$fichiers" `echo $fichiers | tr 'chaine' 'chaine_de_remplacement' `; done

Nous souhaitons remplacer tous les espaces par des "_" dans les noms de fichiers des fichiers PNG du répertoire courant :

for fichiers in *.png; do mv "$fichiers" `echo $fichiers | tr ' ' '_' `; done

Propre et efficace (vous pouvez aussi utiliser rename, merci alexis!)

Attention à bien vous placer dans le répertoire contenant les fichiers avant de lancer la commande.

Pour plus de solutions de remplacement n'hésitez pas à consulter l'aide de la commande tr (man tr).

Si vous utilisez Windows il existe un excellent logiciel adapté : Bulk Rename Utility

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter