Trong một hệ thống tệp có tên tệp trong UTF-8, tôi có một tệp có tên bị lỗi; nó được hiển thị dưới dạng : D�sinstaller
, tên thật theo zsh : D$'\351'sinstaller
, Latin1 Désinstaller
, bản thân nó là một sự man rợ của Pháp đối với "gỡ cài đặt". Zsh sẽ không phù hợp với nó [[ $file =~ '^.*$' ]]
nhưng sẽ phù hợp với nó với một tinh thần toàn cầu *
là hành vi mà tôi mong đợi.
Bây giờ tôi vẫn mong đợi tìm thấy nó khi chạy find . -name '*'
một số vấn đề thực tế, tôi sẽ không bao giờ mong đợi một tên tệp sẽ thất bại trong bài kiểm tra này. Tuy nhiên, với LANG=en_US.utf8
, tệp không hiển thị và tôi phải đặt LANG=C
(hoặc en_US
, hoặc ''
) để nó hoạt động.
Câu hỏi: Việc triển khai đằng sau là gì và làm thế nào tôi có thể dự đoán kết quả đó?
Infos: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]
việc không sử dụng recode
tên tệp, nhưng bây giờ tôi sẽ xem xét convmv
nếu cần. Cảm ơn.
convmv
chuyển đổi tên tệp thành utf-8 chưa?