Windows a un certain nombre de caractères réservés qui ne sont pas autorisés dans les noms de fichiers/dossiers :
◦Les caractères réservés suivants :
◾<(inférieur à)◾> (supérieur à)
◾ :(deux-points)
◾" (guillemet double)
◾/ (barre oblique )
◾\ (barre oblique inverse)
◾| (barre verticale ou tuyau)
◾ ? (point d'interrogation)
◾* (astérisque)
Je déconseille également l'utilisation d'accolades {}
L'extrait de code suivant peut être utilisé pour "nettoyer" un dossier plein de fichiers et se débarrasser des principaux obstacles. Dans cet extrait, je remplace certains caractères comme espace et :par _ et supprime d'autres caractères. Je remplace également un "double espace" résultant __ par un simple _
N'hésitez pas à développer et à adapter si nécessaire.
L'insertion de ls dans une lecture while évite la nécessité d'essayer de tout échapper correctement lors de l'envoi à mv
### # Fix badly names files # Windows doesn't really like "::" in filenames, we'll also get rid of other problematic characters. ### ls | while read -r FILE ; do mv -u "${FILE}" $(echo "${FILE}" | tr ' ' '_' | tr -d '[{}(),\!]' | tr ':' '_' | sed 's/__/_/g') 2>/dev/null done