फ़ाइल सिस्टम में जहां फ़ाइल नाम UTF-8 में हैं, मेरे पास एक फ़ाइल है जिसमें एक दोषपूर्ण नाम है; इसे D�sinstallerzsh के अनुसार वास्तविक नाम के रूप में प्रदर्शित किया जाता है:, D$'\351'sinstallerलैटिन 1 के लिए Désinstaller, अपने आप में "अनइंस्टॉल" के लिए एक फ्रांसीसी बर्बरता है। Zsh इसके साथ मेल नहीं खाता, [[ $file =~ '^.*$' ]]लेकिन एक ग्लोबिंग के साथ इसका मिलान करेगा- यह *वह व्यवहार है जिसकी मुझे उम्मीद है।
अब भी मुझे यह उम्मीद है कि जब यह चल रहा होगा find . -name '*'- तो बात यह है, मैं कभी भी इस परीक्षण में असफल होने की उम्मीद नहीं करूंगा। हालाँकि, इसके साथ LANG=en_US.utf8, फ़ाइल दिखाई नहीं देती है , और मुझे इसे काम करने के लिए LANG=C(या en_US, '') सेट करना होगा।
प्रश्न: कार्यान्वयन के पीछे क्या है, और मैं उस परिणाम की भविष्यवाणी कैसे कर सकता था?
Infos: आर्क लिनक्स 3.14.37-1-lts, (GNU खोजक) 4.4.2 खोजें
[[ $file =~ '^.*$' ]]उपयोग करने में विफल होने पर भरोसा करने के लिए उपयोग recodeकरता हूं, लेकिन मैं अब इस पर ध्यान दूंगा convmvकि क्या आवश्यकता होगी। धन्यवाद।
convmvफ़ाइल नामों को utf-8 में बदलने के लिए विचार किया है?