Je dois renommer une arborescence complète de dossiers de manière récursive afin qu'aucune lettre majuscule n'apparaisse nulle part (il s'agit d'un code source C++, mais cela ne devrait pas avoir d'importance).
Points bonus pour avoir ignoré les fichiers/dossiers de contrôle de version CVS et Subversion. Le moyen préféré serait un shell script, puisqu'un shell devrait être disponible sur toute boîte Linux.
Il y a eu quelques arguments valables concernant les détails du renommage des fichiers.
-
Je pense que les fichiers ayant les mêmes noms en minuscules devraient être écrasés ; c'est le problème de l'utilisateur. Lorsqu'il est extrait sur un système de fichiers ignorant la casse, il écrase le premier fichier avec le second également.
-
Je prendrais en compte les caractères A-Z et les transformerais en a-z, tout le reste n'est que source de problèmes (du moins avec le code source).
-
Le script serait nécessaire pour exécuter un build sur un système Linux, donc je pense que les modifications des fichiers de contrôle de version CVS ou Subversion devraient être omises. Après tout, c'est juste un "scratch checkout". Peut-être qu'une "exportation" est plus appropriée.
0 votes
La méthode affichée précédemment fonctionnera parfaitement ou avec quelques ajustements pour les cas simples, mais il y a certaines situations que vous voudrez peut-être prendre en compte avant d'exécuter le renommage par lot : 1. Que se passe-t-il si vous avez deux ou plusieurs noms au même niveau dans la hiérarchie des chemins qui ne diffèrent que par la casse, tels que
ABCdef
,abcDEF
yaBcDeF
? Le renommage script doit-il avorter ou simplement avertir et continuer ? 2. Comment définir les minuscules pour les noms non US-ASCII ? Si de tels noms peuvent être présents, faut-il effectuer d'abord une passe de vérification et d'exclusion ? 3. Si vous exécutez une opération de renommage