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
8 commentaires
Sinon y'a un super GUI user-friendly sous KDE, KRename, il est tout simplement excellent 🙂
Sinon rename fait pareil en plus court
http://www.libre.ainw.org/index.php/post/2010/08/25/Renommer-des-fichiers
@alexis: C'est vrai que c'est plus court 🙂
rename -v "s/\s+/_/g" *
Sous AIX j'ai dû modifier les " et ` :
Merci pour l'info !
trop fort! ça marche bien sous AIX