सबसे सुरक्षित शर्त किसी भी ऑपरेटिंग सिस्टम के लिए अनुमत वर्ण सेट के लिए विकिपीडिया प्रविष्टि का उल्लेख करना है। यह यहाँ से पाया जा सकता है ।
उदाहरण के लिए, अधिकांश यूनिक्स आधारित प्रणालियों के लिए, अनुमत वर्ण सेट 8 बिट सेट है और आरक्षित वर्ण अशक्त वर्ण (NUL '\0'
) है। हालाँकि, फ़ाइल नाम में विशेष वर्णों का उपयोग करना एक अच्छा अभ्यास नहीं है क्योंकि उन्हें हटाते समय कोई समस्या आती है।
उदाहरण के लिए, मेरे पास एक फ़ाइल नाम हो सकता है -ramesh.txt
और मैं इसे नीचे के रूप में निकालने का प्रयास करता हूं।
rm -ramesh.txt
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.
rm "-ramesh.txt"
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.
मुझे फ़ाइल को हटाने की आवश्यकता है,
rm -- "-ramesh.txt"
rm: remove regular empty file `-ramesh.txt'? y
इस उत्तर से और भी विवरण मिल सकते हैं ।
लिनक्स और ओएस-एक्स में केवल /
मुद्रण योग्य एएससीआईआई सेट निषिद्ध है जो मुझे विश्वास है। कुछ वर्ण (शेल मेटाचैकर जैसे *?!
) कमांड लाइनों में समस्याएं पैदा करेंगे और फ़ाइल नाम को उचित रूप से उद्धृत या बच निकलने की आवश्यकता होगी।
एक्स्ट्रीम 2, एक्सएक्स 3 जैसे लिनक्स फाइलसिस्टम वर्ण-सेट अज्ञेयवादी हैं (मुझे लगता है कि वे इसे कमोबेश एक बाइट स्ट्रीम के रूप में मानते हैं - केवल नल और /
निषिद्ध हैं)। इसका मतलब है कि आप UTF-8 एन्कोडिंग में फ़ाइलनाम स्टोर कर सकते हैं। मेरा मानना है कि यह प्रदर्शन या प्रसंस्करण के लिए फ़ाइल नाम को ठीक से उपयोग करने के लिए एन्कोडिंग का उपयोग करने के लिए शेल या अन्य एप्लिकेशन पर निर्भर है।
इसलिए निष्कर्ष निकालने के लिए, समस्या फ़ाइल नाम के लिए विशेष वर्णों का उपयोग करने में नहीं है, लेकिन उन्हें कैसे संभालना है।