У файловій системі, де назви файлів є в UTF-8, у мене є файл із несправним іменем; вона відображається як:, D�sinstallerфактична назва відповідно до zsh:, D$'\351'sinstallerLatin1 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?