bonjour, je ressort ce sujet car je souhaite copier des fichiers d'une partition linux vers une partition exfat
la limitation des caractères spéciaux sur exfat m'a obligé à pondre une routine pour corriger mes fichiers non conformes
mes recherches m'ont fait tomber sur ce post car je voulais essayer d'aller de faire un truc un peu plus complet au niveau des accents
bref, en testant le script suggéré ci-dessus par larles, il se pose encore un problème avec les espaces dans les noms de fichiers
une astuce que j'ai trouvé il y a peu sur un autre forum a permi de résoudre le probleme des espaces sortis par le find et qui sont mal interpretés par la boucle for, meme en mettant les variables entre ""
-> il faut changer temporairement le caractère "retour chariot"
voici donc ma proposition d'amélioration de ce script
j'y ai aussi intégré le remplacement des deux points ":" par un "_"
au passage, j'integre le cas ou par hasard le fichier existerait
les critiques sont ouvertes 🙂
old_IFS=$IFS
IFS=$'\n'
for i in `find .`; do
new=`echo "$i" | sed 'y/:àâçéèêëîïôöûùüÂÀÇÉÈÊËÎÏÔÖÙÛÜ/_aaceeeeiioouuuAACEEEEIIOOUUU/'`;
if [ "$new" != "$i" ]
then
[ -e "$new" ] && new="1${new}"
mv "$i" "$new";
fi
done
IFS=$old_IFS