पथ के लिए Windows बैकस्लैश का उपयोग क्यों करता है और यूनिक्स फॉरवर्ड स्लैश करता है?


85

यह मुझे गुस्सा दिलाता है कि मैंने कॉलेज में यूनिक्स का इस्तेमाल किया है और अब विंडोज की तरफ काम कर रहा हूं। इस फैसले के पीछे का इतिहास क्या है? किसी को पता है कि यह इस तरह से काम क्यों किया?


जवाबों:


98

/1970 के आसपास यूनिक्स को कुछ समय के लिए विभाजक विभाजक के रूप में पेश किया गया। मुझे नहीं पता कि वास्तव में इस चरित्र को क्यों चुना गया था; पूर्वज प्रणाली मल्टीनिक्स का इस्तेमाल किया >, लेकिन यूनिक्स के डिजाइनरों ने पहले से ही शेल में पुनर्निर्देशन के लिए >एक साथ इस्तेमाल किया था <(देखें कि रूट निर्देशिका को एक /संकेत द्वारा निरूपित क्यों किया जाता है ? )।

एमएस-डॉस 2.0 \को 1980 के दशक की शुरुआत में निर्देशिका विभाजक के रूप में पेश किया गया था। कारण /का उपयोग नहीं किया गया था कि एमएस-डॉस 1.0 (जो बिल्कुल निर्देशिका का समर्थन नहीं करता था) पहले से ही /कमांड-लाइन विकल्प पेश करने के लिए उपयोग कर रहा था । इसने CP / M/ से इसका उपयोग लिया , जो इसे VMS से लिया । आप इस बात का अधिक गहन विवरण पढ़ सकते हैं कि लैरी ओस्टरमैन के ब्लॉग पर वह विकल्प क्यों बनाया गया (MS-DOS यहां तक ​​कि विकल्प चरित्र को बदलने के लिए और निर्देशिका विभाजक को बदलने के लिए एक विकल्प था , लेकिन यह छड़ी नहीं था)।-/

/यह अधिकांश प्रोग्रामर-स्तरीय एपीआई (डॉस और विंडोज के सभी संस्करणों में) द्वारा मान्यता प्राप्त है। तो आप अक्सर कर सकते हैं, लेकिन हमेशा /विंडोज के तहत एक निर्देशिका विभाजक के रूप में उपयोग करने से दूर नहीं होते हैं । एक उल्लेखनीय अपवाद यह है कि आप उपसर्ग के /बाद विभाजक के रूप में उपयोग नहीं कर सकते हैं\\? जो (यहां तक ​​कि विंडोज 7 में) यूनिकोड का उपयोग करके या 260 से अधिक वर्णों वाले पथ को निर्दिष्ट करने का एकमात्र तरीका है।

कुछ उपयोगकर्ता इंटरफ़ेस तत्व /विंडोज के तहत निर्देशिका विभाजक के रूप में समर्थन करते हैं , लेकिन सभी नहीं। कुछ कार्यक्रमों में सिर्फ अंतर्निहित एपीआई के माध्यम से फ़ाइल नाम गुजरती हैं, तो वे समर्थन /और \उदासीनता। कमांड दुभाषिया में ( command.comया में cmd), आप /कई मामलों में उपयोग कर सकते हैं , लेकिन हमेशा नहीं; यह आंशिक रूप से विंडोज के संस्करण पर निर्भर cd /windowsकरता है (उदाहरण के लिए, XP और 7 में काम करता है लेकिन विंडोज 9x में नहीं था)। एक्सप्लोरर पथ प्रविष्टि बॉक्स स्वीकार करता है /(कम से कम XP ऊपर; शायद इसलिए कि यह URL भी स्वीकार करता है)। दूसरी ओर, मानक फ़ाइल खुला संवाद स्लैश को अस्वीकार करता है


2
/MS-DOS या Windows कमांड-लाइन द्वारा निर्देशिका विभाजक के रूप में पहचाना जाता है।
तमारा विज्समैन

1
"C: \ Windows \ System32> सीडी / विंडोज़ / सिस्टम" काम करता है।
एंड्रयू जे। ब्रेअम

@ टॉमीज: क्या आपके पास एक संदर्भ है जहां /कमांड लाइन पर ठीक स्वीकार किया जाता है? उदाहरण के लिए, क्या करता dir /pहै? और dir c:/p? और c:/windows/notepad.exe? और start /windows/notepad.exe? आदि (मेरे पास परीक्षण करने के लिए यहां एक विंडोज मशीन नहीं है।)
गाइल्स

2
/शायद UNIX में निर्देशिका विभाजक के रूप में उपयोग किया गया था क्योंकि यह टेलेटाइप पर स्ट्राइक करने के लिए एक आसान (अनशिफ्टेड) ​​कुंजी थी। अशिक्षित विशेष पात्र थे : - ; , . /
डेनियल आर हिक्स

2
दिलचस्प रूप से पर्याप्त है, मैंने हाल ही में डॉस 1 और 2 स्रोतों और मैनुअल के माध्यम से खोदा और पता चला कि माइक्रोसॉफ्ट ने /(और -स्विच के लिए) एक्सनिक्स की तरह इस्तेमाल किया , और एक्सनिक्स द्वारा प्रेरित किया गया, लेकिन आईबीएम ने माइक्रोसॉफ्ट को ओईएम में भेज दिया और आईबीएम ने ` (and स्विच के लिए `` का उपयोग किया। और से शीघ्र बदल A:करने के लिए A>तो वे डिफ़ॉल्ट और भेज दिया गाड़ी (अब भी यह सोचते हैं बदल // -) प्रलेखन के साथ साथ एक टिप्पणी है कि यह बदल गया था और क्यों।
mirabilos

9

अंतर्निहित Windows API या तो बैकस्लैश स्वीकार कर सकते हैं या एक पथ के अलग निर्देशिका और फाइल घटकों के लिए स्लेश, लेकिन माइक्रोसॉफ्ट सम्मेलन बैकस्लैश का उपयोग करने के लिए है, और API रास्तों लौटने में बैकस्लैश डाल दिया।

MS-DOS 2.0 ने Unix से पदानुक्रमित फ़ाइल सिस्टम की प्रतिलिपि बनाई और इस प्रकार फ़ॉरवर्ड स्लैश का उपयोग किया, लेकिन ( IBM के आग्रह पर ) ने MS-DOS 1.0 और CP के साथ अनुकूलन बनाए रखते हुए कमांड शेल में पथ को अनुमति देने के लिए बैकस्लैश जोड़ा। / एम जहां स्लैश कमांड-लाइन विकल्प संकेतक था।

तुलना

dir/w

जो वर्तमान निर्देशिका को विस्तृत स्वरूप में दिखाता है

dir\w

जो wनिर्देशक में फ़ाइल चलाता है dir

संदर्भ:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.