এই জাতীয় লিঙ্ক কেন তৈরি করবেন: ln -nsf?


42

এটি কি করে?

ln -nsf

আমি জানি ln -sএকটি প্রতীকী লিঙ্ক তৈরি করে, একটি হার্ড লিঙ্ক নয় যার অর্থ আপনি এটি মুছতে পারেন এবং এটি যে লিঙ্কটি যুক্ত করছে তা মুছে ফেলবে না। তবে অন্যান্য জিনিসগুলির অর্থ কী? (-nf)

আপডেট: ঠিক আছে ... তাই আমার মনে আছে আপনি কমান্ড লাইন থেকে এই জিনিসগুলি খুঁজে পেতে পারেন। টাইপিং থেকে আমি যা জানতে পেরেছি তা এখানে ln --help:

-f, --force                 remove existing destination files
-n, --no-dereference        treat destination that is a symlink to a
                            directory as if it were a normal file

তবে এর প্রভাবগুলি কী তা এখনও আমার কাছে খুব স্পষ্ট নয়। আমি কেন এই জাতীয় একটি নরম / সিম লিঙ্ক তৈরি করতে চাই?


1
এমনকি যদি আপনি ব্যবহার না করেন তবে আপনি -sমূল ফাইলটি মোছা ছাড়াই লিঙ্কটি মুছতে পারেন। হার্ড লিঙ্কগুলি ফাইলটির লিঙ্ক গণনা বাড়িয়ে তোলে তাই আপনি যখন এর লিঙ্কগুলির মধ্যে কেবল একটি মুছবেন তখন তা মোছা হবে না।
আমোক

এটি একটি হার্ড লিঙ্ক এবং একটি প্রতীকী লিঙ্কের মধ্যে বেশ পার্থক্য নয়। একটি হার্ড লিঙ্কটি ডিস্কে একই বাইটগুলিতে (ইনোড) পয়েন্ট করে। একটি নরম লিঙ্ক ফাইল নাম দ্বারা অন্য একটি ফাইলকে নির্দেশ করে
গ্রেগ হিউগিল

ম্যান পেজও রয়েছে। অর্থাত্ চালিত মানুষ ln। বা মানুষ মানুষ, যে সহায়তা সিস্টেম সম্পর্কে জানতে। আপনি ম্যান পেজগুলি
পিটার কর্ডস

উত্তর:


43

বিএসডি ম্যান পেজ থেকে:

 -f    If the target file already exists, then unlink it so that the link
           may occur.  (The -f option overrides any previous -i options.)

 -n    If the target_file or target_dir is a symbolic link, do not follow
           it.  This is most useful with the -f option, to replace a symlink
           which may point to a directory.

32

-nবিকল্প (একসাথে -f) বাহিনীর lnএকটি ডিরেক্টরিতে অবশ্যই এমন একটি সিম্বলিক লিঙ্ক আপডেট করার জন্য। ওটার মানে কি?

ধরুন আপনার কাছে 2 টি ডিরেক্টরি রয়েছে

  • foo বিন্যাস
  • বার

এবং একটি বিদ্যমান প্রতীকী লিঙ্ক

  • baz -> বার

এখন আপনি আপডেট করতে চান বায দিকে নির্দেশ foo বিন্যাস পরিবর্তে। যদি তুমি ঠিক কর

ln -sf foo baz

আপনি পাবেন

  • baz / foo -> foo
  • baz -> বার (অপরিবর্তিত), এবং এইভাবে
  • বার / foo -> ফু

আপনি যদি যোগ করুন -n

ln -sfn foo baz

আপনি যা চান তা পান

  • baz -> foo

এটি 'নো-ডিসিফারেন্স' এর অর্থ: কোনও বিদ্যমান লিঙ্কটি সমাধান করবেন না এবং সেই ডিরেক্টরিটির ভিতরে নতুন লিঙ্কটি স্থাপন করবেন না, বরং কেবল এটি আপডেট করুন।


2
এখন পর্যন্ত সবচেয়ে সহায়ক উত্তর।
kobejohn

1

এখানে ln করার জন্য সমস্ত বিকল্প রয়েছে। আপনি এখানে -n এবং -f খুঁজে পাবেন।

 -F    If the target file already exists and is a directory, then remove
       it so that the link may occur.
       The -F option should be used with either -f or -i options.  If
       none is specified, -f is implied.
       The -F option is a no-op unless -s option is specified.

 -h    If the target_file or target_dir is a symbolic link, do not
       follow it.  This is most useful with the -f option, to replace 
       a symlink which may point to a directory.

 -f    If the target file already exists, then unlink it so that the
       link may occur.  (The -f option overrides any previous -i options.)

 -i    Cause ln to write a prompt to standard error if the target file
       exists.  If the response from the standard input begins with the
       character `y' or `Y', then unlink the target file so that the link
       may occur.  Otherwise, do not attempt the link.  (The -i option
       overrides any previous -f options.)

 -n    Same as -h, for compatibility with other ln implementations.

 -s    Create a symbolic link.

 -v    Cause ln to be verbose, showing files as they are processed.

-1

এই জাতীয় জিনিসগুলি খুঁজতে আপনি "man ln" টাইপ করতে পারেন:

   -f, --force
          remove existing destination files

   -n, --no-dereference
          treat destination that is a symlink to a directory as if it were
          a normal file

20
আমি এর অর্থ কী তা এখনও ঠিক বুঝতে পারছি না
অ্যান্ড্রু

-1

-f, - বল বিদ্যমান গন্তব্য ফাইলগুলি সরান

-n, --no-dereferences চিকিত্সা গন্তব্য যে এটি একটি ডিরেক্টরি হিসাবে একটি ডিরেক্টরি একটি syMLink হয়


-5

-f বলছে যে আপনার কমান্ডের লক্ষ্য যদি একটি বিদ্যমান ফাইল হয়, তবে এটি সরিয়ে নতুন লিঙ্কে প্রতিস্থাপন করা উচিত। (নোট করুন যে ইউনিক্স-প্রভাবিত সিস্টেমে "ফাইল" ডিরেক্টরিতে লিঙ্ক, পাইপ ইত্যাদি অন্তর্ভুক্ত থাকতে পারে)

-n সংশোধন করে -ফ, বলেছেন যে আপনার নির্দিষ্ট করা লক্ষ্যটি যদি একটি বিদ্যমান প্রতীকী লিঙ্ক হয় তবে এটি অপসারণ করা উচিত নয়


3
আপনার বিবরণ -nভুল। -fনিজেই একটি ডিরেক্টরিতে একটি সিমলিংক প্রতিস্থাপন করবে না। ডিরেক্টরিতে একটি সিমলিংক প্রতিস্থাপন করার সময়, -nবিদ্যমান সিমলিংকটিকে ডিরেক্টরি পরিবর্তে একটি সাধারণ ফাইলের মতো চিকিত্সা করা প্রয়োজন।
ব্রায়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.