Отображение Unicode Emoji в именах файлов в Ubuntu

860
bschlueter

Я хотел бы использовать эмодзи в именах файлов и получать к ним доступ в командной строке, но я не могу заставить его работать ls. Странно то, что если я подключаюсь к любой другой программе, смайлики отображаются правильно:

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

Я использую GNU coreutils 8.23.

Вот моя информация о локали:

[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= 

Кто-нибудь знает, что вызывает такое поведение, и как я могу сделать так, чтобы просто lsотображалось что-то вроде того, что ls | xargsпроисходит в этой ситуации?

1
Вы можете адресовать комментарии только тем пользователям, которые только что опубликовали другие комментарии или ответы, иначе они не будут доставлены ... Кстати, я не думаю, что это связано с coreutil. Вы используете оболочку `sh`? Это не (d) пепел или удар один? Какой вывод у локали? Hastur 8 лет назад 0
Ах, не знал, что о комментариях. Я не верю, что это какая-то проблема, просто наблюдение за поведением. Coreutil предоставляет команду `ls` в моей системе. bschlueter 8 лет назад 0
Вы можете найти это интересным [Q & A] (http://unix.stackexchange.com/q/187426/66388). Этот символ () в моем браузере отличается от того, который я вижу на мобильном телефоне ... Hastur 8 лет назад 1

1 ответ на вопрос

1
bschlueter

The answer is in the ls man page.

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

I'd have to look into it further to figure out why ls is treated specially, but that argument will display when using ls.