नरम या प्रतीकात्मक लिंक कैसे बनाएं?


464

मैं p4v को इनस्टॉल कर रहा हूँ /opt, लेकिन /usr/binअपने रास्ते पर है। यह से p4v के लिए एक नरम या प्रतीकात्मक लिंक बनाने के लिए संभव है /optकरने के लिए /usr/bin, तो मैं बस "p4v" टाइप कर सकते हैं के बाद से /usr/binमेरी राह में है?


जवाबों:


665

देख लो man ln

एक सिमिलिंक बनाने के लिए /usr/bin/barजिस पर मूल फ़ाइल का संदर्भ लें /opt/foo, का उपयोग करें:

ln -s /opt/foo /usr/bin/bar

आपको उपरोक्त कमांड को रूट (यानी sudo) के रूप में लागू करने की आवश्यकता होगी ।


मैं उपयोग कर रहा हूँ: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineत्रुटि प्राप्त करना:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
उबंटू प्रलेखन का कहना है "डिफ़ॉल्ट रूप से कठिन लिंक बनाता है, - प्रतीकात्मक के साथ प्रतीकात्मक लिंक।" क्या उपरोक्त समाधान ओपी द्वारा पूछे गए एक प्रतीकात्मक लिंक का निर्माण करेगा?
तनय

4
हालाँकि मैं सेसर अपनी फ़ाइलों को प्रतीकात्मक लिंक के लिए / ऑप्ट / और usr / बिन में रखना चाहता था, लेकिन अन्य तरीके से नहीं।
मिशा

4
@ मिशप जहां तक ​​मेरा सवाल है, सही है। यह दूसरा तरीका है।
डैनियल ज़ुमुलविच

2
@kevinmicke ने आपके स्पष्टीकरण के बाद आखिरकार महसूस किया कि उत्तर का स्पष्टीकरण आदेश से उल्टे क्रम में कहा गया था, जिससे मेरा मस्तिष्क (और अन्य) इसे पीछे की ओर पढ़ता है
एंड्रयू

40

त्रुटि यह है कि आप कमांड गलत लिख रहे हैं। सही तरीका है

ln -s /<full>/<path>/<to>/<file> /usr/local/bin

http://ubuntuforums.org/showthread.php?t=2001697



धन्यवाद, मुझे पूरी तरह से याद है कि मुझे लिंक की गई फ़ाइल के लिए पूर्ण पथ की आवश्यकता है।
एंडी आर

21

यदि 'p4v' निष्पादन योग्य / ऑप्ट / बिन / p4v पर है, तो आप बस चला सकते हैं:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

अपने रास्ते में / ऑप्ट / बिन (या जहां भी निष्पादन योग्य है) जोड़ना बेहतर होगा:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profileसेटिंग के लिए बेहतर होगा $PATH
लेकेन्स्टाइन

आप /etc/environmentविस्तृत PATH सिस्टम को संशोधित करने के लिए संपादित कर सकते हैं ।
मीकल errajer

4

इसके द्वारा सॉफ्टवेयर लोकेशन की जाँच करें।

which application-name #replace for the application you are looking for

उदाहरण के लिए

which skype

आउटपुट यह होगा।

/usr/bin/skype 

सॉफ्ट लिंक बनाने के लिए। उदाहरण के लिए आप skypeअपने डेस्कटॉप पर सॉफ्ट लिंक बनाना चाहते हैं

ln -s /usr/bin/skype ~/Desktop/

के बारे में अधिक जानकारी के लिए ln

man ln

या

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

ध्यान दें, यह काम करता है यदि आप दोनों नोड्स एक ही पेड़ में आपके नीचे हैं। आप रिश्तेदार संकेतन का उपयोग कर सकते हैं

  • -s कमांड इसे प्रतीकात्मक लिंक बनाता है
  • -n यह संभव बनाता है डे एक फ़ोल्डर-प्रकार सिमिलिंक बनाता है

Askubuntu.com पर आपका स्वागत है। इस मामले में $कमांड लाइन प्रॉम्प्ट को इंगित करना एक स्टाइल पसंद है, और समस्या होने की संभावना नहीं है। हालांकि यह ध्यान रखें कि कोड और इसके आउटपुट के अलावा एक कोड ब्लॉक में चीजें शामिल हैं, जिससे भ्रम पैदा हो सकता है।
जे। स्टारनेस

1

यह टेम्प्लेट उपरोक्त उत्तरों की तुलना में मेरे लिए अधिक उपयोगी था। शायद अधिक सही नहीं है, बस कम अस्पष्ट:

ln -s <path/to/real/file-or-folder> <symlink path>

बस में भागों की जगह <>की


0

यदि यह कह रहा है target is not a folder, तो इसका मतलब है कि आपके फ़ोल्डर नामों में स्थान हैं जैसे: New Folderएक स्थान है

आपको पथ संपादित करने और \पथों में प्रत्येक स्थान के बाद बैकस्लैश जोड़ने की आवश्यकता है

उदाहरण के लिए:

ln -s /opt/bin /usr/var/New\ Folder

3
यह ओपी के सवाल का जवाब नहीं है। कृपया प्रतीक्षा करें जब तक कि आपके पास टिप्पणियां जोड़ने के लिए पर्याप्त प्रतिष्ठा न हो।
5

0

मैंने पाया है कि जहाँ आप लिंक चाहते हैं वहाँ जाना आसान है और फिर लिंक का उपयोग करके sudo ln -s /path/to/source/file, बनाने की तुलना में ln -s target source

तो आपके मामले में मैं क्या करना होगा cd /usr/binतो sudo ln -s /opt/bin/pv4। मेरे मामले में दूसरा तरीका काम नहीं कर रहा है।

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