पहले से निर्मित प्रतीकात्मक लिंक को कैसे हटाएं या प्रतिस्थापित करें?


53

मैं नेटवर्क सिमुलेटर 2 का उपयोग करके अपनी परियोजना पर काम कर रहा हूं। मैंने इसे स्थापित किया और सब कुछ ठीक है। मैंने इस इंस्टॉलेशन के बीच एक प्रतीकात्मक लिंक बनाने का प्रयास किया और /usr/binइसलिए, मैं nsकमांड-लाइन से चलकर सॉफ्टवेयर को इनवाइट कर सकता हूं । अर्थात्, मैं भागा:

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

जो निम्न आउटपुट उत्पन्न करता है:

ln: creating symbolic link '/usr/bin/ns': File exists


मैं पहले से ही बनाए गए सिमलिंक को कैसे हटा सकता हूं या क्या मैं इसे किसी अन्य कमांड से बदल सकता हूं?


मैं करने की कोशिश कर रहा था sudo ln -s destination source, और निश्चित रूप से यह खराब हो गया। जवाब के लिए धन्यवाद।
एविग्नेस्टो

जवाबों:


35
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

1
उपरोक्त विफल रहता है अगर ns एक फ़ोल्डर है - जिस स्थिति में rm -rf (पुनरावर्ती बल स्विच) का उपयोग करें - जिस स्थिति में आप ln के लिए -sf स्विच का उपयोग कर सकते हैं।
फिनाले

@finley हाँ, आप सही हैं। बैठाना एनएस एक फ़ोल्डर है, यह deletd नहीं किया जा सकता। अब यह मेरे लिए अस्पष्ट है कि, क्या हम एक फ़ोल्डर में एक प्रतीकात्मक लिंक बना सकते हैं?
विनय

1
हाँ, हम एक फ़ोल्डर में एक प्रतीकात्मक लिंक बना सकते हैं। यदि यह एक फ़ोल्डर है, तो आप कर सकते हैं: sudo rm -r / usr / bin / ns
Pawełkowy

@Pawel मैंने succesfully फ़ोल्डर के लिए एक सिमलिंक बनाया। मैं भी हटा सकता हूँ जैसा कि ऊपर कहा गया है। लेकिन, जब मैं टाइप गुना टर्मिनल में नाम [एक फ़ोल्डर के लिए बनाई गई सिमलिंक] यह एक त्रुटि देता है। वास्तव में मैंने सोचा था कि एक फ़ोल्डर के लिए एक सिमलिंक बनाकर और लिंक नाम टर्मिनल टाइप करने से वह नॉटिलस में खुल जाएगा। मुझे यकीन नहीं है कि यह संभव है या नहीं ..?
विनय

1
@Vinaychalluru यदि आप उस फ़ोल्डर को खोलना चाहते हैं, तो टाइप करने की कोशिश करें: सीडी फोल्ड - यह एक टर्मिनल में खुलेगा। यदि आप इसे नॉटिलस में खोलना चाहते हैं, तो टाइप करें: नॉटिलस फोल्ड
पावेलोकोवी

63

lnने -fस्विच किया है कि 'सिम्पलिंक' को बनाया जा सकता है चाहे वह मौजूद हो या न हो।

sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

यह स्वीकृत उत्तर होना चाहिए।
रॉनी वर्गीस

28

मैंने कोशिश की ln -sfहै, जबकि जगह है, लेकिन यह मेरे लिए काम नहीं किया था, लेकिन कर ln -sfn directory link_name के रूप में rootकाम किया।


बिना -nमुझे अनंत लूप की समस्या हो रही थी। धन्यवाद!
क्रिस्टोफर मार्किटा

3

उपरोक्त सभी उत्तरों को जोड़ने के लिए, एक प्रतीकात्मक लिंक को कई मामलों में एक नियमित फ़ाइल के रूप में माना जा सकता है (लिंक, लक्ष्य नहीं)।

rmएक प्रतीकात्मक लिंक पर इसे हटा देगा। यदि लिंक रूट के स्वामित्व में है, तो आपको sudo की आवश्यकता होगी।

आपको स्वामित्व रखने में सक्षम होना चाहिए rm /usr/bin/nsया sudo rm /usr/bin/nsनहीं भूलना चाहिए।

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