Renommer le nom des fichiers en minuscule sous Linux
![]()
Voici deux commandes bash dont je me sers régulièrement. Ces dernières permettent de renommer le nom des fichiers en minuscule et de transformer les espaces en tirets. Cela permet au final d'avoir des noms un peu plus standards, surtout quand les fichiers sont destinés à être mis en ligne sur Internet.
Pour qu'elles fonctionnent, il vous suffit d'ouvrir un terminal et de vous positionner dans le répertoire contenant les fichiers. Attention tout de même, les commandes ci-dessous ne sont pas capables de prendre en charge les sous-répertoires.
Voici la commande pour renommer le nom des fichiers en minuscule :
for i in *; do mv "$i" "$(echo $i | tr A-Z a-z)"; done
Et enfin, celle pour convertir les espaces en tirets :
for i in *; do mv "$i" "$(echo $i | tr " " "-")"; done



Créé en 2005, Tux-planet est un site qui a pour ambition de regrouper des articles sur Linux et le monde des logiciels libres. 





7 Commentaires pour "Renommer le nom des fichiers en minuscule sous Linux"
Flux des commentaires de cet article Ajouter un commentaireHello pour ce qui cherche a faire de façon récursive voici les commandes
Pour les fichiers des sous répertoire
for i in `find -type f`; do mv "$i" "$(echo $i | tr A-Z a-z)"; done
ou alors pour les répertoires:
for i in `find -type d`; do mv "$i" "$(echo $i | tr A-Z a-z)"; done
Vous pouvez adapter la commande $(echo $i ...) pour les espaces
Sa pique les yeux les boucle....
(En Récursif) find ./ -type f -exec rename 'y/A-Z/a-z/' {} \;
----------------
Ou pas !
Inspiré de Noxis, pour les espaces:
J'ai pas été cherché loin^^
Je connaissais déjà, mais avec une boucle, c'est en effet plus beau comme ça, thanks =)
@Noxis @Gardouille : pas mal comme commandes !
Pour les espaces et les majuscules:
rename 'y/[A-Z ]/[a-z_]/' *
Pour le tr, ça :
tr '[A-Z ]' '[a-z_]
Fera également les espaces et les majuscules.
J'ai aussi un script nautilus:
#!/bin/bash
find | while read FN;do mv "$FN" "`echo $FN | sed -e 's/ /_/g'`";done
Ensuite, sélection de fichier/dossier, clic droit/script/supprimer_espace et hop pu d'espace.
J'ai oublié le plus important!!!
J'ADORE l'image :p
I AM LINUXXX
ps:si vous avez des idées pour améliorer/simplifier mon script nautilus =)
on peut faire aussi comme ca :
#!/bin/bash
for i in LEDOSSIER ; do new=`echo $i | tr "[:upper:]" "[:lower:]"`; echo "transform $i in $new"; mv $i $new ; done