Personalmente encuentro que muchas veces el problema no es Linux, sino las aplicaciones que se usan en Linux.
Tomemos como ejemplo Amarok. Recientemente noté que ciertos artistas que había copiado de mi máquina Windows no aparecían en la biblioteca. Revisé y confirmé que los archivos estaban allí y luego noté que ciertos caracteres en los nombres de las carpetas (nombrados para el artista) estaban representados con un cuadrado de aspecto extraño en lugar de un personaje real.
En una terminal de shell, los nombres de archivo se ven aún más extraños:/Music/Albums/Einst $ '\ 374'rzende \ Neubauten es un ejemplo de lo extraño.
Mientras que estos archivos estaban definitivamente allí, Amarok no podía verlos por alguna razón. Pude usar algunos trucos de shell para cambiarles el nombre a versiones sanas, que luego pude renombrar con caracteres ASCII solo utilizando Musicbrainz Picard. Desafortunadamente, Picard tampoco pudo abrir los archivos hasta que los renombré, de ahí la necesidad de un script de shell.
En general, esta es un área difícil y parece ser muy espinosa si está tratando de sincronizar una colección de música entre Windows y Linux, donde ciertos nombres de carpeta o archivo contienen caracteres funky.
Lo más seguro es apegarse a los nombres de archivo solo ASCII.
Bastante seguro que ''/'' al menos no está permitido (o sería un PITA completo si no fuera así) –
char * str = "foo/bar"; bien podría representar un archivo aunque – nos