web-dev-qa-db-fra.com

Batch renommer les répertoires?

J'ai plusieurs répertoires avec le format de l'année, du mois et du jour suivi d'une description de l'événement. Par exemple: "2012 05 26 - EventA", "2012 05 26 - EventB". Ce que je voudrais faire est de renommer tous ces répertoires afin que les espaces entre les nombres de la date soient remplacés par des tirets. Ainsi, "2012 05 26 - EventA" devient "2012-05-26 - EventA". Je sais que je peux faire ce dossier à la fois avec la commande mv, mais existe-t-il un moyen de le faire en procédant par lots avec des caractères génériques?

6
Brian
5
jasmines

Vous pouvez également utiliser mmv.

Sudo aptitude install mmv

#> mmv "201? * * - Event?" "201#1-#2-#3 - Event#4"

1
Avio

Je voulais renommer plusieurs répertoires (des dossiers, pas des fichiers) et je ne pouvais pas savoir si cela était possible avec pyRenamer. GPRename ( http://gprename.sourceforge.net/ ) fait très bien l'affaire cependant.

Les utilisateurs Ubuntu doivent avoir GPRename dans leurs répertoires et peuvent exécuter cette commande pour installer GPRename:

Sudo apt-get install gprename

0
Sietse

Utilisez renommer (avec l'option -n pour tester les modifications):

rename 'm/(\d{4}) (\d{2}) (.*)/;$_="$1-$2-$3"' *

Le changement de nom est fourni par Perl, vous aurez donc peut-être besoin de l'installer (vous ne savez pas s'il fait partie de l'installation d'origine d'Ubuntu):

Sudo apt-get install Perl
0
Maxime R.