Dosya adlarının UTF-8’de olduğu bir dosya sisteminde, hatalı bir adla bir dosyam var; şöyle gösterilir:, D�sinstaller
zsh: '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 convmv
gerekip gerekmediğine bakacağım . Teşekkürler.
convmv
dosya adlarını utf-8'e dönüştürmeyi düşündünüz mü?