У файловій системі, де назви файлів є в UTF-8, у мене є файл із несправним іменем; вона відображається як:, D�sinstaller
фактична назва відповідно до zsh:, D$'\351'sinstaller
Latin1 for Désinstaller
, сама по собі французьке варварство для "видалення". Zsh не погодився б з цим, [[ $file =~ '^.*$' ]]
але зіставлю його з глобусом *
- це така поведінка, яку я очікую.
Тепер я все ще сподіваюся знайти його під час роботи find . -name '*'
- фактично я ніколи не очікував, що ім'я файлу не вдасться провести цей тест. Однак, LANG=en_US.utf8
файл не відображається, і я повинен встановити LANG=C
(або en_US
, або ''
), щоб він працював.
Питання: Що стоїть за реалізацією, і як я міг передбачити цей результат?
Інформація: Arch Linux 3.14.37-1-lts, знайдіть (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]
те, що не використовую recode
ім'я файлу, але зараз я розглядаю, convmv
якщо це потрібно. Спасибі.
convmv
перетворити імена файлів у utf-8?