Kyrillische Symbole in Linux-Dateinamen

Kyrillische Symbole in Linux-Dateinamen

Ich habe ein Linux, das mit dem Tool Buildroot erstellt wurde.

Und ich hatte ein Problem beim Erstellen von Dateien mit kyrillischen Namen. Wenn ich versuche, eine Datei zu erstellen, beispielsweise mit diesem Befehl:

touch файл.txt

Ich erhalte eine Datei mit dem Namen ????.txt.

Ich habe versucht, die Variable zu exportieren LANG:

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

/tempUnd ich habe auch versucht, die Datei im Verzeichnis und auf einer EXT3-Partition zu erstellen , aber das Ergebnis ist das gleiche.

Generell kann ich im System Kyrillisch verwenden: Programme können es drucken und ich kann in Programmen kyrillische Symbole verwenden (wie zum Beispiel in vi).

Was kann ich sonst noch versuchen?

Antwort1

touch taterstellt den Dateinamen korrekt. lsZeigt ihn aber nicht an. Das liegt daran, dass lsstandardmäßig Fragezeichen für alles angezeigt werden, was nicht als druckbares Zeichen erkannt wird.

Sie können dies testen, indem Sie den Inhalt des Verzeichnisses mit einem anderen Befehl anzeigen. Versuchen Sie einen der folgenden Befehle:

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

Das Einstellen von $LANG auf ein UTF-8-Gebietsschema, wie Sie es bei der Eingabe getan haben export LANG=ru_RU.UTF-8, sollte das Problem behoben haben. Da dies nicht funktioniert hat, überprüfen Sie

  • Wenn LC_CTYPEfestgelegt wurde, wird der Wert von überschrieben LANG.
  • Wurde Ihr System mit Russisch-Sprachunterstützung installiert? Falls nicht, verwenden Sie ein anderes unterstütztes Gebietsschema wie en_US.UTF-8.

verwandte Informationen