पूर्ण पथ नाम क्या है?


21

मैं समझना चाहूंगा कि पूर्ण पथ नाम का वास्तव में क्या मतलब है। मेरे पास मेरी निर्देशिका में एक फ़ाइल है जिसे my_script कहा जाता है। मैंने मान लिया कि पूर्ण पथ का नाम है ./my_script, जिसका अर्थ है कि यह रूट फ़ोल्डर में है, लेकिन मुझे यकीन नहीं है। क्या कोई मुझ पर कृपा कर सकता है?


क्या आप पूछ सकते हैं "क्या यह एक कमांड लिखना संभव है जो अपने नामों के साथ फाइलों की सूची प्रदर्शित करेगा?" में एक और नया प्रश्न ?
Braiam

जवाबों:


30

नहीं, आपकी धारणा गलत है। के लिए पूरा पथ नाम my_scriptअपने घर निर्देशिका से फ़ाइल है: /home/your_user_name/my_script। जब आप ./my_scriptटर्मिनल में टाइप करते हैं तो आप वास्तव में स्क्रिप्ट को निष्पादित करने का प्रयास करते हैं (यदि निष्पादन योग्य है) और यह तभी निष्पादित किया जाएगा जब आपकी वर्तमान कार्यशील निर्देशिका है /home/your_user_name/। स्क्रिप्ट निष्पादित करने के लिए आप पूर्ण फ़ाइल पथ का भी उपयोग कर सकते हैं, जो कि मैंने कहा है /home/your_user_name/my_script

यह माना जाता है कि UNIX पथ नाम इंटरनेट पतों की तरह दिखता है और महसूस करता है, इस प्रकार संगतता में परिणाम होता है। वर्तमान कार्य निर्देशिका का पूर्ण पथ नाम निम्नलिखित कमांड का उपयोग करके टर्मिनल में पाया जा सकता है:

pwd

अपने उपयोगकर्ता होम निर्देशिका के लिए पूर्ण पथ का पता लगाने के लिए, आप इसका उपयोग कर सकते हैं:

echo ~
echo $HOME
echo /home/$USER

उपरोक्त तीनों आदेश समतुल्य हैं।

किसी फ़ाइल के लिए पूर्ण पथ नाम जानने के लिए आप readlinkकमांड का उपयोग कर सकते हैं । उदाहरण के लिए, आपके मामले में:

cd ~
readlink -f my_script

+1 readlinkने नरम लिंक 'वास्तविक पथ
लैमिनो

7

पूर्ण पथ नाम का वास्तव में फ़ाइल सिस्टम की /निर्देशिका से उस फ़ाइल या फ़ोल्डर का पूर्ण पथ है ।

उदाहरण के लिए, आपकी स्क्रिप्ट का पूर्ण पथ है:

/home/your_username/my_script

या, grepनिष्पादन योग्य के लिए पूर्ण पथ नाम है

/bin/grep

के रूप में ./my_script, प्रतीक .वर्तमान निर्देशिका के लिए खड़ा है, तो आप actuallly कहते हैं, "my_script नामक फ़ाइल या फ़ोल्डर के लिए वर्तमान निर्देशिका के तहत देखो"


3

पूर्ण पथ को समझने के लिए, आपको पहले प्रारंभिक बिंदु को जानना चाहिए।

रूट निर्देशिका /यह * nix आधारित ऑपरेटिंग सिस्टम का प्रारंभिक बिंदु है। यह सिस्टम और उपयोगकर्ता दोनों के अन्य सभी निर्देशिकाओं को समाहित करता है।

उपयोगकर्ता की होम निर्देशिका /home/USERNAME/या ~/संक्षेप में, उपयोगकर्ता की फ़ाइलें और निर्देशिकाएं होती हैं। उदाहरण के लिए चित्र, संगीत, दस्तावेज़, आदि इनमें से प्रत्येक निर्देशिका को संदर्भित किया जाता है /home/USERNAME/DIRECTORY, उदाहरण के लिए दस्तावेज़ स्थित हैं /home/USERNAME/Documents

निर्देशिकाओं की तरह, फ़ाइलों को उसी तरह से संदर्भित किया जाता है, उदाहरण my_scriptके लिए उपयोगकर्ता के होम निर्देशिका में स्थित एक फ़ाइल sosyteeको पूर्ण पथ का उपयोग करके /home/sosytee/my_scriptया ~/my_scriptसंक्षिप्त रूप से संदर्भित किया जा सकता है ।

दोनों फाइलों और निर्देशिकाओं को सिस्टम में हर जगह से अपने पूर्ण पथ का उपयोग करके संदर्भित / एक्सेस किया जा सकता है। इसके अतिरिक्त यदि कोई एक ही डायरेक्टरी में है तो केवल उनके नाम का उपयोग करके उन्हें एक्सेस कर सकता है। उदाहरण के लिए यदि उपयोगकर्ता ~/टर्मिनल का उपयोग कर रहा है, तो वह my_scriptबस का उपयोग करके फ़ाइल तक पहुंच सकता है my_script

इसके अलावा, कोई निर्देशिका और फ़ाइलों को केवल उनके नाम का उपयोग करके उपयोग कर सकता है, यदि उन्हें उसके पैट चर में रखा गया हो। आप पाथ में स्टोर करके देख सकते हैं कि क्या उपयोग किया गया है echo $PATH

कमांड लाइन का उपयोग करके फ़ाइलों तक पहुंचने के सरल उदाहरण:

  • उपयोगकर्ता वर्तमान में है /home/USERNAME/और foo.txt नामक catफाइल पर कमांड का उपयोग करना चाहता है /home/USERNAME/Documents:

cat Documents/foo.txt

  • उपयोगकर्ता अंदर है ~/Documentsऔर foo.shस्थित विज्ञापन नामक एक स्क्रिप्ट चलाना चाहता है ~/Scripts/Foo:

    sh ../Scripts/Foo/foo.sh

    या

    sh ~/Scripts/Foo/foo.sh

हर तरह से यह सिर्फ एक सारांश है।

अग्रिम जानकारी


2

पूर्ण पथ नाम रूट निर्देशिका (यानी, /) से पथ है । ./my_scriptसापेक्षिक पथ नाम है, क्योंकि वर्तमान निर्देशिका के लिए पथ अपेक्षाकृत दिया जाता है, जिसे इसके द्वारा निरूपित किया जाता है .। इसलिए यदि आप अपने घर निर्देशिका में हैं तो पूरा रास्ता s.th है। पसंद है /home/sosytee/my_script। आपके होम डायरेक्टरी के लिए "शॉर्ट-कट" है ~, जिसका अर्थ आप लिख भी सकते हैं ~/my_script। लेकिन वह निश्चित रूप से हर उपयोगकर्ता के लिए एक अलग रास्ते का समाधान करेगा।

अपनी वर्तमान निर्देशिका कॉल का पूरा पथ देखने के लिए pwd


2

मैंने मान लिया कि पूर्ण पथ का नाम है ./my_script

नहीं ऐसा नहीं है। वह मार्ग सापेक्ष है। शुरुआत में बिंदु वर्तमान निर्देशिका को इंगित करता है:

$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory

जैसा कि आप देख सकते हैं, मैंने निर्देशिका को बदल दिया है और my_scriptइसे नहीं मिला है, जिसका अर्थ है कि ./my_scriptकोई निरपेक्ष पथ नहीं है।

मैंने मान लिया कि पूर्ण पथ का नाम है ./my_script, जिसका अर्थ है कि यह रूट फ़ोल्डर में है, लेकिन मुझे यकीन नहीं है।

से विकिपीडिया :

[...] एक पूर्ण पथ या निरपेक्ष पथ एक पथ है जो कार्य निर्देशिका या संयुक्त पथों की परवाह किए बिना एक फ़ाइल सिस्टम पर एक ही स्थान पर इंगित करता है।

चूंकि यह ./my_scriptशर्त नहीं है कि जब भी मैं my_scriptफ़ाइल पा सकता हूं , हमें यह पता लगाना चाहिए कि यह एक सापेक्ष पथ है।

एक रिश्तेदार पथ उपयोगकर्ता या एप्लिकेशन की कार्यशील निर्देशिका के सापेक्ष एक पथ है, इसलिए पूर्ण निरपेक्ष पथ नहीं देना होगा।


0

यहाँ ... मुझे लगता है कि आप पूछ रहे हैं क्योंकि आप खिड़कियों पर Ubuntu सर्वर स्थापित किया है ...

इस कोड को विंडोज़ पर अपने फ़ोल्डर एक्सप्लोरर में कॉपी करें %userprofile%\AppData\Local\Packages

जो आपको होम लोकेशन दिखाएगा ... इसके सिस्टम में कहीं छिपा हुआ है

इस फ़ोल्डर में, लिनक्स वितरण के लिए फ़ोल्डर पर डबल-क्लिक करें, जिसकी फाइलें आप देखना चाहते हैं:

  1. उबंटू: CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  2. OpenSUSE लीप 42: 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  3. SUSE लाइनेक्स एंटरप्राइज सर्वर 1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

भविष्य में इन फ़ोल्डरों के नाम थोड़े बदल सकते हैं। बस लिनक्स वितरण के नाम पर एक फ़ोल्डर की तलाश करें।

आपके घर के नीचे होगा LocalState\rootfs\home

इस जानकारी का अधिकांश भाग विंडोज़ में अपनी उबाऊ बैश फ़ाइलों तक पहुँचने के लिए (और बश में आपका विंडोज सिस्टम ड्राइव) से प्राप्त किया गया था।

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