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


9 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
  •  

    bonjour,je suis un débutant dans le monde linux ,,i've two problems :
    1-j'avais le shell bash(par defaut) j'ai voulu essayé la commande "chsh" pour voir la différence entre les shelle---->>l'hécatombe,heureusement que c'etait sur le virtual box,,,j'ai été obligé de créer une autre machine virtuelle(en attendant d'avoir une solution pour l'autre)sinon je sais aussi comment creer une machine virtuelle mais je sais pas comment la supprimer,,,
    2-je veux ecrire une commande qui affiche de façon décroissante les longueurs de chaque mot dans une phrase et après dans un texte(ce serait génial si je pouvais utiliser la commande cut mais de façon récursive,,,unfortunatly j'ai essayer avec cut -R /cut -r mais ça donne rien...)

    Merci d'excuser mon ignorance,hope to hear from you soon!!

    RépondreRépondre
    lenul_but_aprendvite , le 23 juillet 2012 à 17:36
  •  

    :p

    RépondreRépondre
    Anonyme , le 8 mars 2014 à 14:03
 

Ajouter un commentaire

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