Em um sistema de arquivos em que os nomes de arquivos estão em UTF-8, tenho um arquivo com um nome com defeito; é exibido como D�sinstaller
:, nome real de acordo com zsh D$'\351'sinstaller
:, Latin1 para Désinstaller
, ele próprio um barbarismo francês para "desinstalação". O Zsh não combinaria com isso, [[ $file =~ '^.*$' ]]
mas sim com um brilho *
- esse é o comportamento que eu espero.
Agora, ainda espero encontrá-lo durante a execução find . -name '*'
- na verdade, nunca esperaria que um nome de arquivo falhasse neste teste. No entanto, com LANG=en_US.utf8
, o arquivo não aparece e eu tenho que definir LANG=C
(ou en_US
, ou ''
) para que ele funcione.
Pergunta: Qual é a implementação por trás e como eu poderia prever esse resultado?
Informações: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]
não usar recode
o nome do arquivo, mas agora analisarei convmv
se necessário. Obrigado.
convmv
em converter nomes de arquivos para utf-8?