विभिन्न नामों के साथ एक फ़ोल्डर से दूसरे फ़ोल्डर में एक सिमलिंक बनाना?


81

मेरे पास दो फ़ोल्डर हैं, जिनमें से एक मेरा वेबसर्वर रूट है। मैं इसे अपने प्रोजेक्ट फ़ोल्डर से लिंक करना चाहता हूं ताकि मैं Git के साथ चीजों को अद्यतित रख सकूं।

अगर मैं ऐसा करने की कोशिश करूँ:

ln -s /home/user/project  /var/www/html

सिस्टम HTML फ़ोल्डर के भीतर एक प्रोजेक्ट नामक एक फ़ोल्डर बनाता है , और लिंक करता है। क्या इसे लिंक करने का कोई तरीका है ताकि निर्देशिका 'html' परियोजना की सामग्री की ओर इशारा करे ? क्या उन्हें एक ही नाम होना चाहिए?

नोट : मुझे कई छिपी हुई फ़ाइलों को लिंक करने की भी आवश्यकता है। क्या मैं इसका उपयोग कर सकता हूं ln?

जवाबों:


109

से man ln:

डिफ़ॉल्ट रूप से, प्रत्येक गंतव्य (नए लिंक का नाम) पहले से मौजूद नहीं होना चाहिए।

जैसा कि आपके पास पहले से ही एक निर्देशिका है html, लिंक /var/www/htmlलक्ष्य के नाम के अंदर बनाया जाएगा project

यदि आप एक सिमलिंक /var/www/htmlइंगित करना चाहते हैं /home/user/projectतो आपके पास htmlपहले से मौजूद निर्देशिका नहीं होनी चाहिए । तो, आपके पास केवल होना चाहिए /var/wwwऔर फिर निम्नलिखित को चलाने से वांछित सिमिलिंक बनेगा (ऐसा तब तक न करें जब तक कि आप सुनिश्चित न हों):

ln -s /home/user/project /var/www/html

यहाँ एक उदाहरण है:

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

और हाँ, आप छिपी हुई फ़ाइलों के सहारे बना सकते हैं।


13
मैंने यह कोशिश की, लेकिन परिणामी सिमिलिंक एक फाइल थी और एक निर्देशिका नहीं
एलेक्स

1
@ ए सॉफ्ट एक फाइल की तरह दिखाई देता है, लेकिन इसका परिणाम यह है कि यह उस फ़ोल्डर की तरह व्यवहार करता है जिस पर यह इंगित कर रहा था।
चानोच

5
यह भी ध्यान दें कि स्रोत निर्देशिका को सापेक्ष पथ नहीं होना चाहिए पूर्ण ln -s ./ /var/www/htmlनहीं होना चाहिए ताकि काम न करें
डिएगो आंद्रेस डीज़ एस्पिनोज़ा

0

सुनिश्चित करें कि HTML निर्देशिका के अंतर्गत नहीं बनाई गई है /var/www/

इसके बाद कमांड है: ln -s -T /home/user/project /var/www/html

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