Мой вывод mv -vf
очень странный:
cd /tmp
touch xx yy
$ mv -vf xx yy
â -> â
$ env | grep ^LANG
LANG=en_US.UTF-8
Правильный вывод должен быть:
$ mv -vf xx yy
'xx' -> 'yy'
Это из,
$ env | grep ^LANG
LANG=C
Если я установлю LANG=C
то вывод mv -vf
снова будет правильным.
Обновление о проверке locale -a
:
$ locale -a | grep en
en_US
en_US.utf8
LANG=en_US.utf8
touch xx yy
$ mv -vf xx yy
â -> â
LANG=en_US
touch xx yy
$ mv -vf xx yy
'xx' -> 'yy'
Как так? Будет ли какое-нибудь исправление?
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Кстати, просто протестируйте то же самое под Ubuntu 16.04 LTS Xenial, и проблема исчезла, несмотря на мой LANG=en_US.UTF-8
. Так это ошибка Ubuntu 15.04 тогда? У меня есть несколько машин, использующих Ubuntu 15.04, и все они демонстрируют одинаковое поведение. Это происходит с вами вообще?
Обновление 2:
$ locale -a | grep ^C
C
C.UTF-8
LANG=C.UTF-8
touch xx yy
$ mv -vf xx yy
â -> â
Так что это не имеет ничего общего с en
но на самом деле UTF-8
под Ubuntu 15.04 (как работает настройка LANG=C
).