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