在文件名使用UTF-8的文件系统中,我的文件名称错误;它显示为:D�sinstaller
,根据zsh:的实际名称 D$'\351'sinstaller
,Latin1表示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?