l'origine du problème déjà :
Tu dois IMPERATIVEMENT unifier l'ensemble des machines du réseau en terme de tables de caractères/locales etc....
idéalement UTF-8-fr partout (celui là c'est sur existe sous les 3 environnements mais il y a peut etre d'autres choix disponibles)
-----------------------
APRES tu peux faire une passe pour corriger les fichiers qui ont des noms incohérants sur l'ensemble des partages
-----------------------
La méthode identifier les caractères en faute et faire un :
1 2 3 4 5 6
| $ ls
Tut~
$ for i in *~* ; do mv $i $(echo $i|sed "s/~/é/") ; done
$ ls
Tuté
$ |
tu peux bien sur scripter la commande pour prendre en charge plusieurs cas différents ou utiliser un find pour identifier une liste de fichier répartie dans tous les sous répertoires
for i in $( find . -type f -name "*~*") ; do mv $i $(echo $i|sed "s/~/e/") ;done
Partager