Renommer le nom des fichiers en minuscule sous Linux


Script shell
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.

BD Linux

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

Autres articles du même sujet


7 Commentaires pour "Renommer le nom des fichiers en minuscule sous Linux"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Hello 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 ;)

    RépondreRépondre
    bourvill , le 1 avril 2010 à 09:20
  •  

    Sa pique les yeux les boucle....

    rename 'y/A-Z/a-z/' *.txt

    (En Récursif) find ./ -type f -exec rename 'y/A-Z/a-z/' {} \;

    ----------------
    Ou pas !

    RépondreRépondre
    Noxis , le 1 avril 2010 à 11:50
  •  

    Inspiré de Noxis, pour les espaces:

    rename 'y/ /_/' *

    J'ai pas été cherché loin^^
    Je connaissais déjà, mais avec une boucle, c'est en effet plus beau comme ça, thanks =)

    RépondreRépondre
    Gardouille , le 1 avril 2010 à 16:51
  •  

    @Noxis @Gardouille : pas mal comme commandes !

    RépondreRépondre
    pti-seb , le 1 avril 2010 à 18:33
  •  

    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.

    RépondreRépondre
    Gardouille , le 1 avril 2010 à 20:17
  •  

    J'ai oublié le plus important!!!
    J'ADORE l'image :p
    I AM LINUXXX :D
    ps:si vous avez des idées pour améliorer/simplifier mon script nautilus =)

    RépondreRépondre
    Gardouille , le 1 avril 2010 à 21:22
  •  

    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

    RépondreRépondre
    Silvergot , le 8 avril 2010 à 14:09
 

Ajouter un commentaire

actualité apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky crack date debian Desktop développement exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware intel internet iphone jackalope jailbreak jaunty Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette microblog microsoft mini-blog mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet plugins publicité red hat redhat rpm réseau screenshot script serveurs shell sql ssh statistiques system sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum