লিনাক্সে 'ln -sf' এর অর্থ কী?


21

আমার 2 টি প্রশ্ন আছে। প্রথমটি -sfবিকল্পগুলির জন্য এবং দ্বিতীয়টি বিকল্পগুলির আরও সুনির্দিষ্ট ব্যবহারের জন্য -f

গুগল করে, আমি কমান্ড ln, বিকল্প -sএবং এর বর্ণনা সন্ধান করলাম -f

( http://linux.about.com/od/commands/l/blcmdl1_ln.htm থেকে অনুলিপি )

-s, --symbolic : make symbolic links instead of hard links
-f, --force : remove existing destination files

আমি স্বতন্ত্রভাবে এই বিকল্পগুলি বুঝতে পারি। তবে কীভাবে এটি -sএবং -fবিকল্পগুলি একই সাথে ব্যবহার করতে পারে? -sএকটি লিঙ্ক ফাইল তৈরি করার জন্য ব্যবহৃত হয় এবং একটি লিঙ্ক ফাইল -fসরানোর জন্য ব্যবহৃত হয়। আমি এই পরিস্থিতিটি বুঝতে পারি না এবং কেন এই মার্জ করা বিকল্পটি ব্যবহার করবেন।

lnকমান্ড সম্পর্কে আরও জানতে , আমি কয়েকটি উদাহরণ তৈরি করেছি।

$ touch foo     # create sample file
$ ln -s foo bar # make link to file
$ vim bar       # check how link file works: foo file opened
$ ln -f bar     # remove link file 

পরবর্তী কমান্ডের আগে সবকিছু ঠিকঠাক কাজ করে

$ ln -s foo foobar
$ ln -f foo     # remove original file

-fবিকল্পের বিবরণ দিয়ে , এই শেষ আদেশটি কাজ করা উচিত নয়, তবে এটি করে! fooসরান হল.

ইহা কি জন্য ঘটিতেছে?


3
-fস্ট্যান্ডার্ড বল ( --force); অপসারণের জন্য নয়!
পান্ড্যা

3
টার্ডনের উত্তরে কোনও কারণ যুক্ত করার জন্য ... ম্যানুয়ালি লাইব্রেরি আপডেট করার সময় এর একটির ব্যবহার। আপনি যদি এটি দুটি পদক্ষেপে করেন - প্রথমে পুরানো লিঙ্কটি সরিয়ে ফেলার জন্য আরএম, তারপরে একটি নতুন তৈরি করতে ln -s - লাইব্রেরিটি ক্রিয়াকলাপগুলির মধ্যে কাজ করবে না ... যা ln কমান্ডের লাইব্রেরির প্রয়োজন হলে একটি বড় সমস্যা হয়ে দাঁড়ায় কাজ করতে. সুতরাং ln -sf দিয়ে, লিঙ্কটি কখনও ভাঙা না রেখে পুরানো লিঙ্কটি নতুন দিয়ে প্রতিস্থাপন করা হবে।
বার্ড কোপ্পেরুদ

উত্তর:


42

সবার আগে, কমান্ডের বিকল্পগুলি কী করে তা সন্ধান করতে আপনি ব্যবহার করতে পারেন man command। সুতরাং, আপনি যদি চালান man ln, আপনি দেখতে পাবেন:

   -f, --force
          remove existing destination files

   -s, --symbolic
          make symbolic links instead of hard links

এখন, -sআপনি যেমনটি বলেছেন, লিঙ্কটিকে শক্তির বিরোধী হিসাবে প্রতীকী করা। -fঅবশ্য লিঙ্কটি সরান নয়। এটি উপস্থিত থাকলে গন্তব্য ফাইলটি ওভাররাইট করা। বর্ণনা করা:

 $ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 bar
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo

$ ln -s foo bar  ## fails because the target exists
ln: failed to create symbolic link bar’: File exists

$ ln -sf foo bar   ## Works because bar is removed and replaced with the link
$ ls -l
total 0
lrwxrwxrwx 1 terdon terdon 3 Mar 26 13:19 bar -> foo
-rw-r--r-- 1 terdon terdon 0 Mar 26 13:18 foo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.