पाथ(PATH) गणकों में प्रयुक्त एक साधारण नाम है जिसका अर्थ (प्रायः) किसी फ़ाइल तक पहुँचने का रास्ता - या उस फाइल को रखने का स्थान होता है। यूनिक्स में यह एक महत्वपूर्ण इंवायरनमेंट चर है, जिसका अर्थ आदेश पटल पर आदेश खोजने का रास्तों से लगाया जाता है - इस चर में एक से अधिक रास्तों का नाम संग्रहित होता है।

इतिहास संपादित करें

मल्टिक्स ने पहली बार 1960 के दशक के मध्य में निर्देशिकाओं (">" से अलग) के साथ एक पदानुक्रमित फ़ाइल सिस्टम पेश किया।[1] 1970 के आसपास, यूनिक्स ने स्लैश कैरेक्टर ("/") को अपनी निर्देशिका विभाजक के रूप में पेश किया। 1981 में, Microsoft DOS का पहला संस्करण जारी किया गया था। MS-DOS 1.0 फ़ाइल निर्देशिकाओं का समर्थन नहीं करता। इसके अलावा, MS-DOS 1.0 के साथ पैक किए गए उपयोगिता कमांड का एक बड़ा हिस्सा IBM से आया है और उनके कमांड लाइन सिंटैक्स ने स्लैश वर्ण को 'स्विच' उपसर्ग के रूप में उपयोग किया है। उदाहरण के लिए, विस्तृत सूची प्रारूप विकल्प के साथ कमांड dir /wचलाता है dir। स्लैश का यह उपयोग अभी भी माइक्रोसॉफ्ट विंडोज के तहत कमांड इंटरफेस में पाया जा सकता है । इसके विपरीत, यूनिक्स कमांड लाइन स्विच उपसर्ग के रूप में डैश ("-") वर्ण का उपयोग करता है। जब संस्करण 2.0 में MS-DOS में निर्देशिका समर्थन जोड़ा गया था, "/" को पश्चगामी संगतता के लिए स्विच उपसर्ग वर्ण के रूप में रखा गया था। माइक्रोसॉफ्ट ने बैकस्लैश कैरेक्टर ("\") को डायरेक्टरी सेपरेटर के रूप में चुना, जो स्लैश कैरेक्टर के समान दिखता है, हालांकि विंडोज का अधिक आधुनिक संस्करण स्लैश-अज्ञेयवादी है, जो पथ में दोनों प्रकार के स्लैश के मिश्रण की अनुमति देता है। [2][3]

प्रोग्रामिंग भाषाओं में पथ संपादित करें

प्रोग्रामिंग भाषाएं भी पथ का उपयोग करती हैं। E.g.: जब कोई फ़ाइल खोली जाती है। अधिकांश प्रोग्रामिंग भाषाएं अंतर्निहित ऑपरेटिंग सिस्टम के पथ प्रतिनिधित्व का उपयोग करती हैं:

uxFile = fopen("project/readme.txt", "r")

winFile = fopen("C:\\Program Files\\bin\\config.bat", "r")

ऑपरेटिंग सिस्टम पथों तक यह सीधी पहुंच प्रोग्राम की सुवाह्यता में बाधा उत्पन्न कर सकती है। पोर्टेबल प्रोग्रामों का समर्थन करने के लिए जावा / और \ अलग किए गए पथों के बीच अंतर करने के लिए फाइल.सेपरेटर का उपयोग करता है। Seed7 पथ प्रतिनिधित्व के लिए एक अलग दृष्टिकोण है। Seed7 में सभी पथ ऑपरेटिंग सिस्टम से स्वतंत्र, यूनिक्स पथ सम्मेलन का उपयोग करते हैं। विंडोज़ के नीचे मैपिंग होती है (e.g.: The path /c/users is mapped to c:\users).

यूनिवर्सल नेमिंग कन्वेंशन संपादित करें

माइक्रोसॉफ्ट विंडोज यूएनसी, यूनिवर्सल नेमिंग कन्वेंशन या यूनिफॉर्म नेमिंग कन्वेंशन' के लिए संक्षिप्त, एक नेटवर्क संसाधन के स्थान का वर्णन करने के लिए एक सामान्य सिंटैक्स निर्दिष्ट करता है, जैसे कि एक साझा फ़ाइल, निर्देशिका, या प्रिंटर। विंडोज सिस्टम के लिए यूएनसी सिंटैक्स का सामान्य रूप है: \\ComputerName\SharedFolder\Resource Microsoft अक्सर इसे "नेटवर्क पथ के रूप में संदर्भित करता है। कुछ Microsoft Windows इंटरफेस URL के बजाय WebDAV शेयर एक्सेस के लिए UNC सिंटैक्स की अनुमति देते हैं या इसकी आवश्यकता होती है। UNC सिंटैक्स बढ़ाया गया है[4] SSL और TCP/IP पोर्ट नंबर के उपयोग को दर्शाने के लिए वैकल्पिक घटकों के साथ, एक WebDAV URL http[s]://HostName[:Port]/SharedFolder/Resource becomes \\HostName[@SSL][@Port]\SharedFolder\Resource जब दूरस्थ रूप से देखा जाता है, तो "SharedFolder" का नाम "\SharedFolder" खोलते समय सर्वर पर किसी प्रोग्राम द्वारा देखे जाने वाले नाम से भिन्न हो सकता है। इसके बजाय, SharedFolder नाम में "साझाकरण" को परिभाषित करते समय फ़ोल्डर को असाइन किया गया एक मनमाना नाम होता है। कुछ माइक्रोसॉफ्ट विंडोज इंटरफेस "लॉन्ग यूएनसी" को भी स्वीकार करते हैं: \\?\UNC\ComputerName\SharedFolder\Resource Microsoft Windows निम्न प्रकार के पथों का उपयोग करता है:

  • local file system (LFS), such as C:\File
  • universal naming convention (UNC), such as \\Server\Volume\File or /<internet resource name>[\Directory name] (at least in Windows 7 and later)
  • "long" device path such as \\?\C:\File or \\?\UNC\Server\Volume\File.[5] यह पथ स्थानीय फ़ाइल नामस्थान को इंगित करता है और
    \\.\
    
    एक समान है जो स्थानीय डॉस डिवाइस नामस्थान को इंगित करता है। यह प्रारूप "कच्चा" या "बिना अर्थ वाला" पथ भी है, क्योंकि यह tt|/ को tt में परिवर्तित किए बिना और tt|.. .[6]
  • Windows NT object manager \\??\-prefixed paths (global DOS namespace).[7][8]

Windows XP से पहले के संस्करणों में, केवल "लॉन्ग" डिवाइस पथ स्वीकार करने वाले API 260 से अधिक वर्णों को स्वीकार कर सकते हैं। शेल विंडोज एक्सपी और विंडोज विस्टा, explorer.exe में 248 अक्षरों तक के पथ नामों की अनुमति देता है।[उद्धरण चाहिए] चूंकि UNCs दो बैकस्लैश से शुरू होते हैं, और बैकस्लैश का उपयोग स्ट्रिंग से बचने के लिए भी किया जाता है और रेगुलर एक्सप्रेशन एस में, इसके परिणामस्वरूप लीनिंग टूथपिक सिंड्रोम के चरम मामले हो सकते हैं: एक रेगुलर एक्सप्रेशन से मेल खाने वाली एक बची हुई स्ट्रिंग UNC की शुरुआत 8 बैकस्लैश के साथ होती है– \\\\\\\\ – क्योंकि स्ट्रिंग और रेगुलर एक्सप्रेशन दोनों से बचने की आवश्यकता है। इसे कच्ची स्ट्रिंग s का उपयोग करके सरल बनाया जा सकता है, जैसा कि C#'s . में है @"\\\\" or Python's r'\\\\', या नियमित अभिव्यक्ति शाब्दिक, जैसा कि पर्ल के में है qr{\\\\}.

सन्दर्भ संपादित करें

  1. (वीर गडरिया) पाल बघेल धनगर
  2. "Why Windows Uses Backslashes and Everything else Uses Forward Slashes".
  3. "Why is the DOS path character ?".
  4. "DavGetHTTPFromUNCPath function". WebDAV : Windows. Microsoft Docs. series. अभिगमन तिथि 2019-07-14.
  5. "File path formats on Windows systems". File and Stream I/O : .NET. Microsoft Docs. अभिगमन तिथि 2019-07-14.
  6. "Naming Files, Paths, and Namespaces - Win32 apps". docs.microsoft.com (अंग्रेज़ी में).
  7. "winapi - Is there a difference between \??\ and \\?\ paths?". Stack Overflow.
  8. "Path prefixes \??\ and \\?\". Stack Overflow.