सारांश:
- विंडोज: एएससीआईआई के नियंत्रण पात्रों और को छोड़कर कुछ भी
\/:*?"<>|
- लिनक्स, OS-X: अशक्त या को छोड़कर कुछ भी
/
सभी प्लेटफार्मों पर गैर-मुद्रण योग्य पात्रों जैसे कि ASCII नियंत्रण-पात्रों से बचना सबसे अच्छा है।
खिड़कियाँ
विंडोज में, विंडोज एक्सप्लोरर नियंत्रण-वर्णों की अनुमति नहीं देता है या \/:*?"<>|
आप रिक्त स्थान का उपयोग कर सकते हैं। यदि आप रिक्त स्थान का उपयोग करते हैं, तो आपको अक्सर कमांड लाइन से उपयोग किए जाने पर फ़ाइल नाम को उद्धृत करना होगा (लेकिन GUI ऐप अप्रभावित हैं जहां तक मुझे पता है)। NTFS जैसे विंडोज फाइल सिस्टम जाहिरा तौर पर फ़ाइल नाम के साथ एन्कोडिंग को संग्रहीत करता है, लेकिन UTF-16 मानक है।
विंडोज के कुछ भाग केस-संवेदी होते हैं, अन्य भाग केस-असंवेदनशील होते हैं। Windows NTFS फाइल सिस्टम पर "Ab" और "ab" जैसे अलग-अलग फ़ाइलनाम बनाना आसान है। ये नाम अलग-अलग फ़ाइलों को संदर्भित करते हैं जिनमें अलग अलग सामग्री होती है। हालाँकि, हालाँकि Windows कमांड-प्रॉम्प्ट खुशी से दोनों फाइलों का उपयोग करके सूचीबद्ध करेगा dir
, आप आसानी से उन जैसे कमांड्स का उपयोग करके उनमें से एक का उपयोग या हेरफेर नहीं कर सकते हैं type
। निचे देखो।
लिनक्स, ओएस-एक्स
लिनक्स और ओएस-एक्स में केवल /
मुद्रण योग्य एएससीआईआई सेट निषिद्ध है जो मुझे विश्वास है। कुछ वर्ण (शेल मेटाचैकर जैसे *?!
) कमांड लाइनों में समस्याएं पैदा करेंगे और फ़ाइल नाम को उचित रूप से उद्धृत या बच निकलने की आवश्यकता होगी।
एक्स्ट 2, एक्स्ट 3 जैसे लिनक्स फाइलसिस्टम वर्ण-सेट अज्ञेयवादी हैं (मुझे लगता है कि वे इसे बाइट स्ट्रीम के रूप में अधिक या कम मानते हैं - केवल नल और /
निषिद्ध हैं)। इसका मतलब है कि आप फ़ाइल नाम को UTF-8 एन्कोडिंग में संग्रहीत कर सकते हैं। मेरा मानना है कि यह प्रदर्शन या प्रसंस्करण के लिए फ़ाइल नाम को ठीक से उपयोग करने के लिए एन्कोडिंग का उपयोग करने के लिए शेल या अन्य एप्लिकेशन पर निर्भर है।
निष्कर्ष
तो आप शायद सुरक्षित रूप से कुछ का उपयोग कर सकते हैं जैसे ✣
(यदि यह टाइप करना इतना कठिन नहीं था)
केस- (इन) विंडोज़ में संवेदनशीलता
C> dir /B
Ab
aB
аB
C> type Ab
b
b
C> type aB
b
b
C> type аB
unicode homograph
ध्यान दें कि हम दूसरी फ़ाइल की सामग्री टाइप नहीं कर सकते हैं, विंडोज type
कमांड सिर्फ एब की सामग्री को वापस करता है। तीसरी फ़ाइल लिनक्स पर भी aB से अलग होगी।
(विंडोज 10 एनटीएफएस)।