En un sistema de archivos donde los nombres de archivo están en UTF-8, tengo un archivo con un nombre defectuoso; se muestra como:, D�sinstaller
nombre real de acuerdo con zsh:, D$'\351'sinstaller
Latin1 para Désinstaller
sí mismo, una barbarie francesa para "desinstalar". Zsh no coincidiría con él, [[ $file =~ '^.*$' ]]
pero lo haría con un problema: este *
es el comportamiento que espero.
Ahora todavía espero encontrarlo cuando lo find . -name '*'
ejecuto; de hecho, nunca esperaría que un nombre de archivo falle esta prueba. Sin embargo, con LANG=en_US.utf8
, el archivo no aparece, y tengo que configurarlo LANG=C
(o en_US
, o ''
) para que funcione.
Pregunta: ¿Cuál es la implementación detrás y cómo podría haber predicho ese resultado?
Información: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]
no usar recode
el nombre del archivo, pero ahora lo investigaré convmv
si es necesario. Gracias.
convmv
convertir nombres de archivo a utf-8?