1

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

$ ls
?  tmp  我很好,谢谢

$ ls --color
?  tmp  我很好,谢谢

$ ls | cat

tmp
我很好,谢谢

$ ls | xargs
 tmp 我很好,谢谢

$ ls | column
               tmp             我很好,谢谢

$ ls | awk '{print $1}'

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 ответ1

1

Ответ на странице руководства ls .

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

Мне нужно изучить его дальше, чтобы понять, почему ls обрабатывается специально, но этот аргумент будет отображаться при использовании ls .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .