Anzeigen von Unicode-Emojis in Dateinamen unter Ubuntu

956
bschlueter

Ich möchte Emoji in Dateinamen verwenden und über die Befehlszeile darauf zugreifen, aber ich scheine nicht damit klarzukommen ls. Seltsam ist, wenn ich in so ziemlich jedes andere Programm hineinpfeife, werden die Emoji korrekt angezeigt:

$ ls ? tmp 我很好,谢谢  $ ls --color ? tmp 我很好,谢谢  $ ls | cat  tmp 我很好,谢谢  $ ls | xargs tmp 我很好,谢谢  $ ls | column tmp 我很好,谢谢  $ ls | awk ''  tmp 我很好,谢谢 

Ich verwende GNU coreutils 8.23.

Hier ist meine Ortsinfo:

[LOCAL] vagrant@vagrant ~$ locale LANG=en_US.UTF-8 LANGUAGE=en_US: LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Jeder weiß, was dieses Verhalten verursacht und wie ich eine einfache lsAnzeige machen könnte, etwa wie ls | xargsin dieser Situation?

1
Sie können Kommentare nur an Benutzer richten, die gerade andere Kommentare oder Antworten gepostet haben, andernfalls werden sie nicht übermittelt ... Übrigens Ich glaube nicht, dass dieses Verhalten mit coreutil zusammenhängt. Verwenden Sie eine Sh-Shell? Es ist keine Asche oder Bash? Welches ist die Ausgabe des Gebietsschemas? Hastur vor 8 Jahren 0
Ah, wusste das nicht über die Kommentare. Ich glaube nicht, dass dies irgendein Problem ist, nur Verhaltensbeobachtung. Coreutil bietet den Befehl 'ls' auf meinem System. bschlueter vor 8 Jahren 0
Möglicherweise finden Sie diese [Q & A] (http://unix.stackexchange.com/q/187426/66388). Dieses Zeichen () in meinem Browser unterscheidet sich von dem, das ich auf dem Mobiltelefon sehen kann ... Hastur vor 8 Jahren 1

1 Antwort auf die Frage

1
bschlueter

Die Antwort ist in der lsManpage.

 --show-control-chars show non graphic characters as-is (default unless program is 'ls' and output is a terminal) 

Ich muss weiter nachsehen, um herauszufinden, warum ls speziell behandelt wird, aber dieses Argument wird bei der Verwendung angezeigt ls.