Changement des noms de fichiers en minuscules dans Ubuntu dans tous les sous-répertoires
Je sais que ça a été demandé, mais ce que j'ai trouvé n'a pas fonctionné jusqu'à présent.
Le placard je suis venu est: est-ce rename -n 'y[A-Z]/[a-z]/' *
qui travaille pour le répertoire courant. Je ne suis pas trop bon à Linux terminal, de sorte que
dois-je ajouter à cette commande à appliquer à tous les fichiers dans tous les sous-répertoires de qui je suis, merci!
- C'est fermé comme hors sujet, mais il a la meilleure réponse que j'ai trouvé à cette question exacte. Où serait ce mieux, et existe-t-elle là?
- unix.SE ou superuser.com
Vous devez vous connecter pour publier un commentaire.
Voici un moyen à l'aide de
find
ettr
:Edit; ajouté:
-name "*[A-Z]*"
Cela garantit que seuls les fichiers avec les majuscules sont trouvés. Par exemple, si les fichiers avec uniquement des lettres minuscules sont trouvés et déplacé vers le même fichier,
mv
affichera leare the same file
erreur.Foo
vsFOO
). Idéalement, il serait question d'un avertissement dans ce cas.IFS=$'\n' && for i in $(find . -type f -name "*[A-Z]*"); do echo "$i" "$(echo "$i" | tr A-Z a-z)"; done ; unset IFS
Perl a un jeu de paramètres régionaux-conscient
lc()
fonction qui pourrait fonctionner mieux:Noter que ce script gère les espaces dans les noms de fichiers, mais pas les retours à la ligne. Et il n'y a pas de protection contre les collisions, si vous avez "ASDF.txt" et "asdf.txt" on va se faire ridiculiser.