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
লিঙ্কের নামটি সর্বদা লিংক নাম হিসাবে বিবেচিত হওয়ার জন্য একটি বিকল্প রয়েছে এবং লিঙ্কটি গুলি তৈরি করার জন্য ডিরেক্টরি হিসাবে নয় So সুতরাং, জিএনইউ দিয়ে ln
:
ln -fsT new/target link
কাজ করবে. আগের মত, এটি আসল link
সিমিলিংকটি সরিয়ে এটিকে নতুন new/target
হিসাবে লক্ষ্য হিসাবে তৈরি করবে (এবং প্রক্রিয়াটি 'euid এবং egid হিসাবে মালিক হিসাবে)।
জিএনইউতেও ln
একটি -n
বিকল্প রয়েছে। এটা তোলে মত কাজ করে -T
যখন ব্যতীত link
আসলে একটি বাস্তব ডিরেক্টরি যে ক্ষেত্রে এটি এখনও ডিরেক্টরিটি ভিতরে সিমবলিক লিঙ্ক তৈরি করবে (পরিবর্তে একটি ত্রুটির কথা ব্যর্থ) হয়।
বহনযোগ্যভাবে, আপনার সেরা বিকল্পটি হ'ল প্রথমে লিঙ্কটি সরিয়ে ফেলা এবং তারপরে এটি পুনরায় তৈরি করুন:
rm -f link && ln -s new/target link