Windows tiene una serie de caracteres reservados que no están permitidos en los nombres de archivos/carpetas:
◦Los siguientes caracteres reservados:
◾<(menor que)◾> (mayor que)
◾:(dos puntos)
◾” (comillas dobles)
◾/ (barra inclinada )
◾\ (barra invertida)
◾| (barra vertical o tubo)
◾? (signo de interrogación)
◾* (asterisco)
También desaconsejaría el uso de llaves {}
El siguiente fragmento de código se puede usar para "limpiar" una carpeta llena de archivos y deshacerse de los principales impedimentos. En este extracto, reemplazo ciertos caracteres como el espacio y:con _ y elimino otros caracteres. También reemplazo un __ de "espacios dobles" resultante con un solo _
Siéntase libre de ampliar y adaptar según sea necesario.
La canalización de ls en un tiempo de lectura evita la necesidad de intentar escapar correctamente de todo cuando se envía a 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