foo/barएक निर्देशिका है (और आप एक निर्देशिका fooहै foo/barयह निर्धारित करने में सक्षम होने के लिए खोज अनुमति है )। उस मामले में, जब आप करते हैं:
ln -s new/target link
या
ln -fs new/target link
targetइसे linkडायरेक्टरी के अंदर एक नया सिम्लिंक बनाने के रूप में समझा जाता है ( linkयह एक डायरेक्टरी है क्योंकि यह डायरेक्टरी के लिए सिम्लिंक है foo/bar)। तो आप वास्तव में एक बनाएँगे:
foo/bar/target -> new/target
कि दूर करने, जीएनयू lnएक है -Tलिंक नाम के लिए विकल्प हमेशा लिंक नाम के रूप में विचार किया जाना है, और इसलिए में लिंक (रों) बनाने के लिए एक निर्देशिका के रूप में नहीं, जीएनयू साथ। ln:
ln -fsT new/target link
काम करेगा। पहले की तरह, यह मूल linkसीमलिंक को हटा देगा और इसे new/targetलक्ष्य के रूप में नए सिरे से बनाएगा (और मालिक के रूप में 'यूरोपिड और एगिड' प्रक्रिया)।
जीएनयू के पास lnभी एक -nविकल्प है। यह तब काम करता है -Tजब linkवास्तव में एक वास्तविक निर्देशिका को छोड़कर वह उस निर्देशिका के अंदर सहानुभूति पैदा करेगा (एक त्रुटि के साथ असफल होने के बजाय)।
संभवतः, आपका सबसे अच्छा विकल्प लिंक को पहले हटाना है और फिर इसे फिर से बनाना है:
rm -f link && ln -s new/target link