ファイル名が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に変換することを検討しましたか?