Dosya adlarının UTF-8’de olduğu bir dosya sisteminde, hatalı bir adla bir dosyam var; şöyle gösterilir:, D�sinstallerzsh: 'e göre gerçek ad D$'\351'sinstaller, Latin1 Désinstaller, kendisi için "kaldır" için bir Fransız barbarlığı. Zsh, onunla eşleşmeyecek, [[ $file =~ '^.*$' ]]ancak bir *dünya ile eşleşecekti - beklediğim davranış bu.
Şimdi hala çalışırken bulmayı bekliyorum find . -name '*'. Aslına bakarsanız, bir dosya adının bu testte başarısız olmasını asla beklemem. Ancak, ile LANG=en_US.utf8, dosya yok değil göstermek ve ben setine sahip LANG=C(ya da en_US, ya da ''işe bunun için).
Soru: Arkasındaki uygulama nedir ve bu sonucu nasıl tahmin edebilirdim?
Bilgiler: Arch Linux 3.14.37-1-lts, bul (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]kullanmakta başarısız olduğuma güvenmek için kullanıyorum recode, fakat şimdi convmvgerekip gerekmediğine bakacağım . Teşekkürler.
convmvdosya adlarını utf-8'e dönüştürmeyi düşündünüz mü?