কিভাবে একটি ডিরেক্টরি একটি প্রতীকী লিঙ্ক ওভাররাইট?


15

দুটি ডিরেক্টরি আছে foo1এবং foo2

প্রথমে আমি একটি ডিরেক্টরি সিলেমিংক তৈরি করি ln -s foo1 bar। এর পরে আমি সিমিলিংকটি পরিবর্তন করতে চাই, তাই আমি টাইপ করেছিln -sf foo2 bar

তবে এর barসাথে এখনও জড়িত foo1। এর foo2ভিতরে সিমিলিংক তৈরি হয় foo1

আমি কি টাইপ করা উচিত যখন আমি প্রতিস্থাপন করতে চান foo1দ্বারা foo2?

আমি তিনটি পরিবেশে পরীক্ষা করেছি।

  1. উবুন্টু 12.04, ln (জিএনইউ কোর্টিলস) 8.13
  2. সেন্টস 6.4, এলএন (জিএনইউ কোর্টিলস) 8.4
  3. ওএস এক্স 10.7.5, এলএন (সংস্করণ ছাড়াই)

উত্তর:


18

এটি করার সঠিক উপায়টি হ'ল -n, --no-dereferenceবিকল্পটি ব্যবহার করা ।

$ ln -snf foo2 bar

এটি lnবিদ্যমান সিমলিংকে একটি ফাইল হিসাবে বিবেচনা করে। অন্যথায়, এটি dereferences barকরতে foo1, মধ্যে descends foo1এবং মূল ব্যবহার TARGETযেমন নাম LINK_NAMEএবং যে কেন আপনি আপ একটি সিমবলিক লিঙ্ক সঙ্গে শেষ foo2ভিতরে তৈরি করা হচ্ছে foo1ডিরেক্টরি। ম্যানপেজটি নীচে জানিয়েছে ln...

-n, --no-dereferences
       এটি যদি একটি এর প্রতীকী লিঙ্ক হয় তবে LINK_NAME কে একটি সাধারণ ফাইল হিসাবে বিবেচনা করুন
       ডিরেক্টরি

নীচে আমার আর্চ লিনাক্স ডেস্কটপে শেল আউটপুটটি 8.21 সংস্করণ lnসহ --no-dereferenceঅপশনটি ছাড়াই দেওয়া হয়েছে, --no-dereferenceঅপশনটি ছাড়া আপনি যেমন ফলাফল পেয়েছিলেন , তবে --no-dereferenceবিকল্পটি এটি প্রত্যাশার সাথে ব্যবহার করে ।

$ mkdir foo1 foo2
$ ln -s foo1 bar
$ ls -l bar
  lrwxrwxrwx 1 drew users 4 Sep 17 12:51 bar -> foo1
$ ln -sf foo2 bar
$ ls -l bar
  lrwxrwxrwx 1 drew users 4 Sep 17 12:51 bar -> foo1
$ ls -l foo1
  total 0
  lrwxrwxrwx 1 drew users 4 Sep 17 12:51 foo2 -> foo2
$ ln -snf foo2 bar
$ ls -l bar
  lrwxrwxrwx 1 drew users 4 Sep 17 12:52 bar -> foo2

আপনার উত্তরের জন্য ধন্যবাদ. এটি যদি পরিবেশ নির্ভর সমস্যা হয় তবে আমি আমার পরিবেশটি লিখব। আপনি কোন ওএস ব্যবহার করছেন? কি ফলাফল ln --version?
ironsand

আমি এটি ফেডোরা 18 ভিএম-এ 8.17 সংস্করণ দিয়ে চেষ্টা করেছি। মজার বিষয় হল, আমি এটি আমার আর্চ লিনাক্স ডেস্কটপে ৮.২১ সংস্করণ দিয়ে চেষ্টা করেছি এবং আপনার মতো ফলাফল পেয়েছি। দেখে মনে হচ্ছে এই দুটি সংস্করণের মধ্যে কোথাও কিছু পরিবর্তন হয়েছে। আমি পোস্ট করা সমাধান উভয় দৃষ্টান্তেই কাজ করেছে।
ড্রু চ্যাপিন

এফওয়াইআই, আমি এই উত্তরটি justlinux.com ফোরামে পেয়েছি
ড্রিউ চ্যাপিন

ধন্যবাদ ড্রাগিফের! এমনকি আমি কখনও ভাবিনি যে lnকমান্ডটি প্রায়শই আপগ্রেড হয়।
ইওরানস্যান্ড

আমি ওএসএক্সেও পরীক্ষা করেছিলাম। lnডিরেক্টরি ওভাররাইট এবং ln -snfসমস্যা সমাধানের সাথে উবুন্টু এবং সেন্টোগুলির মতো একই কাজ করে । যদিও ln -hওএসএক্সে ব্যবহারের পছন্দ পছন্দ।
ironsand
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.