ファイル名がUTF-8のファイルシステムでは、ファイル名に誤りがあります。それはD�sinstaller、として表示されます。zsh:による実際の名前 D$'\351'sinstaller、Latin1はDésinstaller、それ自体は「アンインストール」のフランス語の野barです。Zshはそれとは一致しません[[ $file =~ '^.*$' ]]が、グロビングと一致*します。これは私が期待する動作です。
今でも、実行時にそれを見つけることを期待しています。find . -name '*'実際のところ、ファイル名がこのテストに失敗することは決してありません。ただし、LANG=en_US.utf8では、ファイルは表示されず、動作するように設定LANG=C(またはen_US、または'')する必要があります。
質問: 背後にある実装とは何ですか?また、その結果をどのように予測できましたか?
情報:Arch Linux 3.14.37-1-lts、find(GNU findutils)4.4.2
[[ $file =~ '^.*$' ]]使用の失敗に頼ってrecodeいますがconvmv、必要に応じて調べます。ありがとう。
convmvファイル名をutf-8に変換することを検討しましたか?