Símbolos cirílicos en nombres de archivos de Linux

Símbolos cirílicos en nombres de archivos de Linux

Tengo un Linux, creado con la herramienta Buildroot.

Y me encontré con un problema al crear archivos con nombres cirílicos. Cuando intento crear un archivo, por ejemplo con dicho comando:

touch файл.txt

Me sale un archivo llamado así ????.txt.

Intenté exportar LANGla variable:

# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8

Y también intenté crear el archivo en /tempel directorio y en una partición EXT3, pero el resultado es el mismo.

En general, puedo usar cirílico en el sistema: los programas pueden imprimirlos y puedo usar símbolos cirílicos en programas (como en vi, por ejemplo).

¿Qué más puedo intentar hacer?

Respuesta1

touch hizocree el nombre del archivo correctamente. Pero lsno lo muestra. Esto se debe a que, lsde forma predeterminada, muestra signos de interrogación para cualquier cosa que no se reconozca como un carácter imprimible.

Puede probar esto usando otro comando para mostrar el contenido del directorio. Pruebe cualquiera de los siguientes comandos:

$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'

Configurar $LANG en una configuración regional UTF-8, como lo hizo cuando escribió export LANG=ru_RU.UTF-8, debería haber solucionado el problema. Como eso no funcionó, verifique

  • Si LC_CTYPEse ha configurado, anulará el valor de LANG.
  • ¿Su sistema está instalado con soporte en ruso? De lo contrario, utilice otra configuración regional compatible, como en_US.UTF-8.

información relacionada