কেন / বাক্সে প্রতীক এবং হার্ডলিঙ্কগুলির মিশ্রণ রয়েছে?


10

আমি সিমলিংক এবং হার্ডলিঙ্কগুলির মধ্যে প্রযুক্তিগত পার্থক্য বুঝতে পারি, এটি অনুশীলনে তাদের ব্যবহার সম্পর্কে একটি প্রশ্ন, বিশেষত আমি কেন জানতে আগ্রহী যে কেন উভয়কে আপাতদৃষ্টিতে অনুরূপ পরিস্থিতিতে ব্যবহার করা হয়: /binডিরেক্টরি।

আমার সিস্টেমে এখানে তালিকাভুক্ত একটি খণ্ড রয়েছে:

~$ ls -lai /bin
total 10508
32770 drwxr-xr-x  2 root root    4096 Jun 14 11:47 .
    2 drwxr-xr-x 28 root root    4096 Sep  6 13:15 ..
  119 -rwxr-xr-x  1 root root  959120 Mar 28 22:02 bash
   2820 -rwxr-xr-x  3 root root   31112 Dec 15  2011 bunzip2
  127 -rwxr-xr-x  1 root root 1832016 Nov 16  2012 busybox
   2820 -rwxr-xr-x  3 root root   31112 Dec 15  2011 bzcat
 6191 lrwxrwxrwx  1 root root       6 Dec 15  2011 bzcmp -> bzdiff
 5640 -rwxr-xr-x  1 root root    2140 Dec 15  2011 bzdiff
 5872 lrwxrwxrwx  1 root root       6 Dec 15  2011 bzegrep -> bzgrep
 3520 -rwxr-xr-x  1 root root    4877 Dec 15  2011 bzexe
 6184 lrwxrwxrwx  1 root root       6 Dec 15  2011 bzfgrep -> bzgrep
 5397 -rwxr-xr-x  1 root root    3642 Dec 15  2011 bzgrep
   2820 -rwxr-xr-x  3 root root   31112 Dec 15  2011 bzip2
 2851 -rwxr-xr-x  1 root root   10336 Dec 15  2011 bzip2recover
 6189 lrwxrwxrwx  1 root root       6 Dec 15  2011 bzless -> bzmore
 5606 -rwxr-xr-x  1 root root    1297 Dec 15  2011 bzmore

আমি আরও ভাল দৃশ্যমানতার জন্য হার্ডলিঙ্কগুলি একই ইনোডে যুক্ত করেছি। সুতরাং symlinks ক্ষেত্রে ব্যবহার করা হয় bzcmp, bzegrep, bzfgrep, bzlessক্ষেত্রে এবং hardlinks bzip2, bzcat, bunzip2?

এগুলি সমস্ত নিয়মিত ফাইল (ডিরেক্টরি নয়), একটি ফাইল সিস্টেমের অভ্যন্তরে থাকে, সিস্টেম ইউটিলিটি এবং এমনকি একই জিনিস নিয়ে কাজ করার জন্য তৈরি করা হয়: bzip সংরক্ষণাগারগুলি। এই বিশেষ ক্ষেত্রে হার্ডলিঙ্ক / সিমলিঙ্ক ব্যবহারের কারণগুলি কি নিখুঁতভাবে historicalতিহাসিক বা আমি কিছু অনুপস্থিত?

আমার প্রশ্নের স্পষ্টতা:

আমি সম্পর্কে জিজ্ঞাসা করছি না :

  • সিমলিংক এবং হার্ডলিঙ্কগুলির মধ্যে প্রযুক্তিগত পার্থক্য
  • তাদের প্রতিটি তাত্ত্বিক সুবিধা এবং অসুবিধা

এই প্রশ্নগুলি এসও এর অন্যান্য থ্রেডগুলিতে সম্বোধন করা হয়েছে। একটি নির্দিষ্ট ক্ষেত্রে কেন বিভিন্ন সিদ্ধান্ত নেওয়া হয়েছিল তা আমি বোঝার চেষ্টা করছি: একাধিক সম্পর্কিত সিস্টেম ইউটিলিটিগুলির জন্য। প্রযুক্তিগতভাবে, তারা সকলেই প্রতীক হতে পারত বা তারা সকলেই হার্ডলিঙ্ক হতে পারত, উভয় বিকল্পই কাজ করবে (এবং উভয় ক্ষেত্রেই কোনও প্রোগ্রামের মাধ্যমে এটি কীভাবে আহবান করা হয়েছে তা এখনও বুঝতে পারে argv[0])। এখানে উদ্দেশ্য থাকলে আমি বুঝতে চাই।

সম্পর্কিত:


আমি মনে করি এটি প্যাকেজ রক্ষণাবেক্ষণকারীদের সিদ্ধান্ত নিতে হবে। আমি হালকা চালাই, এবং আমার /binতৃতীয় কলামে ls -laiসর্বদা 1তাই এটি কেবল সফট লিঙ্কগুলি ব্যবহার করে বলে মনে হয়। আপনি কোন ডিস্ট্রো ব্যবহার করেন?
পুনরায়

আমি উবুন্টু 12.04
দিমিত্রি পশকভিচ

1
প্রথম নজরে এটি প্রকারের কিছু নিয়ম বলে মনে হচ্ছে: "বাইনারিগুলির জন্য হার্ডলিঙ্কস, স্ক্রিপ্ট / মোড়কের জন্য প্রতিলিপি"
পিটার্ফ

উত্তর:


5

হার্ডলিঙ্কগুলি বনাম সিম্বলিক লিঙ্কগুলি কেন ব্যবহার করবেন

এই দৃশ্যে প্রতীকী লিঙ্কগুলির চেয়ে হার্ডলিঙ্কগুলি ব্যবহার করার প্রাথমিকভাবে 3 টি সুবিধা রয়েছে।

হার্ড লিঙ্ক

  1. একটি শক্ত লিঙ্কের সাথে, লিঙ্কটি সরাসরি ইনোডের দিকে নির্দেশ করে।
  2. হার্ড লিঙ্কগুলি এক্সিকিউটেবলের একাধিক অনুলিপি থাকার মতো তবে কেবল একটির ডিস্ক স্পেস ব্যবহার করে।
  3. আপনি কিছু না ভাঙ্গিয়ে হার্ড লিঙ্কের উভয় শাখার নাম পরিবর্তন করতে পারেন।

প্রতীকী লিঙ্কগুলি

  1. লিঙ্কটি বস্তুটির দিকে নির্দেশ করে (যা তারপরে ইনোডে পয়েন্ট দেয়)।
  2. এগুলি ফাইল সিস্টেমগুলি স্প্যান করতে পারে, যেখানে হার্ডলিঙ্কগুলি পারে না।

সাধারণভাবে লিঙ্ক করার সুবিধা

এই লিঙ্কগুলি বিদ্যমান কারণ অনেকগুলি এক্সিকিউটেবল তাদের কীভাবে ডাকা হয়েছিল তার উপর ভিত্তি করে আলাদা আচরণ করে। উদাহরণস্বরূপ 2 টি কমান্ড bzlessএবং bzmoreপ্রকৃতপক্ষে একক এক্সিকিউটেবল bzmore,। কোন নামটি প্রার্থনা করতে ব্যবহৃত হয়েছিল তার উপর নির্ভর করে নির্বাহী অন্যরকম আচরণ করবে।

এটি বিভিন্ন কারণে করা হয়। এখানে আরও সুস্পষ্ট কিছু রয়েছে:

  1. অনেকের চেয়ে একক এক্সিকিউটেবল বিকাশ করা সহজ
  2. ডিস্কের স্থান বাঁচায়
  3. মোতায়েন করা সহজ

দুটোই কেন ব্যবহার হচ্ছে?

এই নির্দিষ্ট অ্যাপ্লিকেশনটিতে যে কোনও একটির পছন্দটি মোট। হয় একটি উপাধিকারের চরিত্রে অভিনয় করার বৈশিষ্ট্যটি সহজ করতে পারে যাতে একক এক্সিকিউটেবলকে ওভারলোড করা যায়। এটাই সেই মূল বৈশিষ্ট্য যা এখানে বিভিন্ন প্রোগ্রামের বিকাশকারীরা দ্বারা ব্যবহার করা হচ্ছে।

এফএইচএসের দিকে তাকানোর জন্য (ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ড) এমনকি এটিকে এটি নির্দিষ্ট করে, এটি যে কোনও একটি হতে পারে।

উদ্ধৃতাংশ

যদি / বিন / শ সত্যিকারের বোর্ন শেল না হয় তবে এটি অবশ্যই বাস্তব শেল কমান্ডের একটি শক্ত বা প্রতীকী লিঙ্ক হতে হবে।

এর পিছনে যুক্তি কারণ শ এবং বাশ সম্ভবত অভিন্নভাবে আচরণ করবে না। প্রতীকী লিঙ্ক ব্যবহারের ফলে ব্যবহারকারীরা সহজেই দেখতে পারবেন যে / বিন / শ সত্যিকারের বোর্ন শেল নয়।

...

...

যদি গানজিপ এবং জ্যাক্যাট প্রোগ্রামগুলি বিদ্যমান থাকে তবে সেগুলি অবশ্যই জিজিপের প্রতীকী বা শক্ত লিঙ্কসমূহ। / বিন / সিএসএস / বিএন / টিসিএস বা / ইউএসআর / বিন / টিসিএইচ-এর প্রতীকী লিঙ্ক হতে পারে।

তথ্যসূত্র


হ্যাঁ, আমি বুঝতে পারি যে ধন্যবাদ, তবে কেন কখনও কখনও সিমলিংক ব্যবহার করা হয়, এবং কখনও কখনও হার্ডলিঙ্কগুলি ব্যবহার করা হয়? আপনি যা বর্ণনা করেছেন তা উভয় ক্ষেত্রে একইভাবে কাজ করবে
দিমিত্রি পশকভিচ

@ দিমিত্রিপাস্কেভিচ - ঠিক আছে আমি আমার উত্তরটি রিফ্যাক্ট করেছি, আরও ভাল কিনা তা আমাকে জানান।
slm

হতে পারে আমি বোবা প্রশ্ন জিজ্ঞাসা করছি তবে আমি মনে করি এটি এখনও অপ্রত্যাশিত :) হ্যাঁ আমি দুটি ধরণের লিঙ্কের প্রযুক্তিগত পার্থক্য এবং সুবিধাগুলি / অসুবিধাগুলির সাথে পরিচিত। আমি একটি নির্দিষ্ট কেসটি বোঝার চেষ্টা করছি: আমি কেন আমার /bin/ডিরেক্টরিতে দুটি হার্ডলিঙ্ক এবং প্রতিলিঙ্কগুলি দেখছি ? এই ইউটিলিটিগুলির বিকাশকারীরা কেন একটি লিঙ্ক ধরণের আটকে থাকেনি?
দিমিত্রি পশকেভিচ

আমার আসল প্রশ্নটি সম্পাদনা করে (
আশাবাদী

@ দিমিত্রিপাশকিভিচ - কিছু অতিরিক্ত সামগ্রী যুক্ত করেছে। যদি এটি সাহায্য করে তবে আমাকে জানান।
slm

5

মনে হচ্ছে আপনি বিদ্যমান অনুশীলন থেকে, কোন ননটেকনিকাল নিয়ম আছে যা আপনাকে কোন ধরণের লিঙ্কটি ব্যবহার করতে হবে তা বলার চেষ্টা করছেন। (আমি ননটেকনিকাল বলছি কারণ আপনি ইতিমধ্যে একে অপরের ব্যবহারের প্রযুক্তিগত কারণগুলি জানেন))

উত্তরটি হ'ল, আর কোনও নিয়ম নেই। এই উদাহরণটি আপনি উবুন্টুর bzip2প্যাকেজ থেকে দেখিয়েছেন যে কেবলমাত্র অনেকগুলি বিকাশকারী পূর্বানুমতি ছাড়াই তাদের মিশ্রিত করে। কারন প্রযুক্তিগত পার্থক্য ছাড়া অন্য কোনও শক্তিশালী দিকনির্দেশনা নেই, এবং এই পার্থক্যগুলি ছোট।

ব্যক্তিগতভাবে, আমি সর্বদা প্রতিলিঙ্কগুলি ব্যবহার করতে পছন্দ করি কারণ আমি তাদের স্ব-ডকুমেন্টিং প্রকৃতির পরিবর্তে তাদের ক্ষুদ্র ওভারহেডের জন্য অর্থ দিতে আগ্রহী।

অন্যান্য বিকাশকারীরা তাদের সরবরাহ করা ক্ষুদ্র দক্ষতার জন্য কঠোর লিঙ্কগুলি বেছে নেবে।

এই সমস্যাটি অনেকগুলি ফাঁকা বনাম ট্যাবগুলি বা গতিশীল বনাম স্ট্যাটিক টাইপিং বা ইমাস বনাম বনাম vi এর মতো , তবে এটি সংরক্ষণ করুন যে পবিত্র যুদ্ধের সূচনা করার পক্ষে এটি আকর্ষণীয় নয় । আরও আকর্ষণীয় যুদ্ধের মতো, দুটি বিকল্প বেছে নেওয়ার কারণ রয়েছে, তবে আপনি যদি কোনটি কোনটি ব্যবহার করবেন তা আপনাকে না বলে আপনি নিজের পছন্দটি বেছে নেবেন।


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