প্রতীকী এবং হার্ড লিঙ্কগুলির মধ্যে পার্থক্য কী?


55

আপনি কখন অন্যের উপর ব্যবহার করবেন?


5
আমার সার্ভারের ত্রুটি উত্তরটি অনুলিপি করার মতো মনে হচ্ছে না: serverfault.com/questions/10543/…
dmckee

আমি মনে করি এই ভিডিওটি এটি ব্যাখ্যা করার ভাল কাজ করেছে youtube.com/watch?v=IyiuP6iqduo

উত্তর:


40

শক্ত এবং নরম লিঙ্কগুলির মধ্যে পৃথক শব্দার্থবিজ্ঞান তাদেরকে বিভিন্ন জিনিসের জন্য উপযুক্ত করে তোলে।

হার্ড লিঙ্কগুলি:

  • অন্যান্য ডিরেক্টরি এন্ট্রি থেকে পৃথকযোগ্য, কারণ প্রতিটি ডিরেক্টরি এন্ট্রি হার্ড লিঙ্ক
  • "আসল" একই ইনোডের অন্যান্য হার্ড লিঙ্কগুলি না ভেঙে সরানো বা মোছা যায়
  • একই ফাইল সিস্টেমের মধ্যেই সম্ভব
  • অনুমতিগুলি অবশ্যই "আসল" এর মতো হবে (অনুমতিগুলি ইনোডে সঞ্চিত থাকে, ডিরেক্টরি এন্ট্রি নয়)
  • ডিরেক্টরিগুলিতে কেবল ফাইলগুলিতে তৈরি করা যায়

প্রতীকী লিঙ্কগুলি (নরম লিঙ্কগুলি)

  • কেবল অন্য ফাইলের পথে নির্দেশ করে। ( ls -lএকটি সিমলিংকটি কোন দিকে নির্দেশ করবে)
  • আসল স্থানান্তরিত বা মুছে ফেলা হলে ভেঙে যাবে। (কিছু ক্ষেত্রে বর্তমানে যে কোনও ফাইল নির্দিষ্ট স্থানে রয়েছে তার দিকে ইঙ্গিত করার জন্য এটি লিঙ্কের পক্ষে আসলেই কাম্য)
  • একটি ভিন্ন ফাইল সিস্টেমে একটি ফাইলকে নির্দেশ করতে পারে
  • একটি ডিরেক্টরি নির্দেশ করতে পারেন
  • কিছু ফাইল সিস্টেম ফর্ম্যাটে, সিমলিংকের পক্ষে এটি যে ফাইলটি দেখায় তার চেয়ে আলাদা অনুমতি থাকা সম্ভব (এটি অস্বাভাবিক)

1
সুন্দর তালিকা। কেবল এটি যুক্ত করতে চেয়েছিলেন যে আপনি নিজেই সিমলিংকটি সরিয়ে নিয়ে কোনও আপেক্ষিক পথের সিমলিংকটিও ভেঙে ফেলতে পারেন।
jw013

4
"[ই] খুব ডিরেক্টরি এন্ট্রি হ'ল লিঙ্ক" " এটি একটি দুর্দান্ত পয়েন্ট যা আমি এর আগে প্রকাশিত কখনও দেখিনি, তবে আমি আশঙ্কা করছি যে কেউ লিঙ্কের চারপাশে কেবল তার মাথাটি জড়িয়ে ফেলতে শুরু করবে এটি এটি পাবে না। এই পরিস্থিতিতে যারা, তাদের জন্য এখানে একটি ইঙ্গিত দেওয়া হয়েছে: ls কমান্ড চালানোর সময় আপনি যে ফাইলগুলি এবং ডিরেক্টরিগুলির লেআউটটি দেখেন সেটি স্টোরেজ সিস্টেমটি প্রতিনিধিত্ব করে না ঠিক একই জিনিস। হার্ড লিঙ্কগুলি স্টোরেজ সিস্টেমের একটি পৃথক ফাইলের উল্লেখ to একটি ফাইল একবার সংরক্ষণ করা হয়। "ইনোডগুলি" পড়ুন।
মারিও

@ মারিও: হ্যাঁ প্রতিটি ডিরেক্টরি এন্ট্রি একটি ইনোডের সাথে একটি নাম লিঙ্ক করে। একটি ফাইল নাম মুছতে সিস্টেম কল এমনকি কল করা হয় unlink(2)। "সাধারণ" ফাইল (1 এর লিঙ্ক গণনা সহ) কেবল একটি বিশেষ কেস। যদি এটি সহায়তা করে তবে আপনি আইওডগুলি অবজেক্ট হিসাবে, এবং নামগুলি রেফ-কাউন্ট পয়েন্টার হিসাবে ভাবতে পারেন (ইনোডের লিঙ্ক গণনাটি রেফারেন্স-কাউন্ট)
পিটার কর্ডস

1
আপনি এটিতে একটি নাম সহ একটি টেক্সট ফাইল হিসাবে প্রতীকী লিঙ্কটি ভাবতে পারেন। ফাইলটিতে একটি বিশেষ পতাকা থাকার কারণে এটি প্রতীকী লিঙ্ক হিসাবে ব্যাখ্যা করা হয়। আপনার জানা হার্ড লিঙ্কের উদাহরণগুলি ..এবং .
নেড 64

এখানে আরও একটি উত্তর যা ব্যাখ্যা করে যে কেন হার্ড লিঙ্কগুলি ডিরেক্টরিতে করা যায় না । আমি এই উত্তরটি সহায়ক বলে মনে করি কারণ এটি আরও সংক্ষিপ্ত এবং পড়া সহজ।
ট্রেভর বয়েড স্মিথ 14

18

উভয় প্রকারের লিঙ্কের বিন্দুটি হ'ল একই সাথে দুটি স্থানে একটি ফাইল উপস্থিত করার একটি উপায় সরবরাহ করা। এর প্রচুর ব্যবহার রয়েছে। 10 টির মধ্যে 9 বার আপনি প্রতীকী লিঙ্কগুলি ব্যবহার করতে চান।

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

উইন্ডোজের বিপরীতে, তারা ফাইল সিস্টেমের স্তরে কাজ করে, শেল বা অ্যাপ্লিকেশন স্তর নয়, তাই কোনও অ্যাপ্লিকেশন প্রত্যাশার মতো সিমলিঙ্কগুলিকে "অনুসরণ" করবে। ls -alসিমলিঙ্কগুলি কোথায় "পয়েন্ট" করছে তা দেখার দ্রুত উপায় হিসাবে ব্যবহার করা যেতে পারে।

হার্ডলিঙ্কগুলি নিম্ন স্তরেও কাজ করে। হার্ডলিঙ্কটি হ'ল একটি আসল, ফাইল-সিস্টেমের-স্তরের ফাইল-সিস্টেম ডিরেক্টরি ডিরেক্টরী entry প্রযুক্তিগতভাবে, ডিরেক্টরি এন্ট্রি একটি হার্ডলিঙ্ক, সুতরাং প্রতিটি ফাইলের কোথাও কোনও ডিরেক্টরিতে কমপক্ষে একটি হার্ডলিংক থাকে। হার্ডলিঙ্কগুলি যে ফাইলটি দেখায় সেগুলি থেকে পৃথক নয়; যদি কোনও ফাইলের বিভিন্ন ডিরেক্টরিতে একাধিক হার্ডলিঙ্ক থাকে তবে হার্ডলিঙ্কগুলি মুছে ফেলার মতো ইউটিলিটিগুলি সহ হার্ডলিঙ্ক মুছে ফেলা rmহবে না যতক্ষণ না সমস্ত হার্ডলিঙ্কগুলি শেষ হয়ে যায়।

আমি হার্ডলিঙ্কগুলির ব্যবহার সাধারণ, বা এমনকি প্রয়োজনের কথা ভাবতে পারি না, যদি না আপনি ইচ্ছাকৃতভাবে ফাইলগুলি মোছা থেকে আটকাতে বা পার্টিশন বা অন্যান্য ফাইল সিস্টেম সম্পর্কিত কিছু অদ্ভুত নিম্ন-স্তরের কাজ না করেন। সম্পাদনা: যদিও এই প্রশ্নের অন্যান্য উত্তরে দুর্দান্ত ধারণা রয়েছে!


এছাড়াও, সিমলিংকের সাধারণ ফাইলগুলির মতো অনুমতি রয়েছে, তবে অপারেটিং সিস্টেমটি তাদের সাথে পরামর্শ করে না, এটি আচরণের সিদ্ধান্ত নেওয়ার পরিবর্তে অনুমতিগুলি লক্ষ্যযুক্ত ফাইলের পরামর্শ নেয়। এবং, সিমলিংকের বৃত্তাকার চেইনগুলি করবেন না। খুব খারাপ.
লরেন্স

3
আসলেই কি খুব খারাপ লাগছে? কি হবে? সর্বাধিক উত্তেজনা আমি পুনরায় তৈরি করতে সক্ষম হ'ল "প্রচুর পরিমাণে প্রতীকী লিঙ্কগুলি" ত্রুটি বার্তা।
ম্যাচটিএম

1
ls -lএকটি সিমিলিংক দ্বারা কী লিঙ্ক করা হচ্ছে তা দেখার জন্য যথেষ্ট, aস্ট্যান্ডস --all, ম্যানপেজ দেখুন। এমনকি যদি সিমলিংকগুলি ফাইল সিস্টেমে কাজ করে তবে ফাইলের পরিবর্তে প্রতীকী লিঙ্কগুলি ব্যবহারের বিকল্প ফাংশন রয়েছে।
D4RIO

4
উইন্ডোজ শর্টকাটগুলি আসলে সিমলিংকের থেকে বেশ আলাদা: তারা তাদের লক্ষ্য অনুসরণ করে এবং এগুলি নিয়মিত ফাইলও। (উইন্ডোজেও সিমলিংক রয়েছে, তবে সেগুলি খুব বেশি ব্যবহৃত হয় না)) সিমলিংকগুলি নির্ভুলভাবে পাঠ্য হয়, আপনি যখনই ফাইলটি অ্যাক্সেস করেন তখন লক্ষ্য পাঠ্যটি পড়ে। সিএমলিংকের অনুমতিগুলি কিনা ওএস এবং ফাইল সিস্টেমের উপর নির্ভর করে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

আফাইক, একটি সিমিলিংক ফাইলের বিষয়বস্তু হল সেই পথ যা সিমলিংকটি নির্দেশ করে, যা সিমলিংক ফাইলের আকারের দিকে তাকানোর সময় দেখা যায়: ln -s /home 1; ls -l 1দেখায় যে ln -s /usr/share/ 2; ls -l 2সিমলিংক 1টি 5 বাইট দীর্ঘ, যখন দেখায় যে 2 টি 11 বাইট দীর্ঘ।
ড্যানিয়েল কুলম্যান

13

হার্ড লিঙ্কগুলি ডিস্ক-ভিত্তিক ব্যাকআপ প্রক্রিয়াগুলির জন্য খুব দরকারী, কারণ যেগুলি পরিবর্তিত হয়নি এমন ফাইলগুলির জন্য স্থান ভাগ করে নেওয়ার সময় প্রতিটি ব্যাকআপের জন্য আপনার একটি সম্পূর্ণ ডিরেক্টরি ট্রি থাকতে পারে - এবং ফাইল সিস্টেম রেফারেন্স গণনা ট্র্যাক করে রাখে, তাই শেষ রেফারেন্সটি যখন প্রদত্ত সংস্করণটি চলে যায় কারণ স্থান কারণে কারণে ব্যাকআপটির মেয়াদ শেষ হয়ে গেছে / সরানো হয়েছিল, এটি ব্যবহৃত স্থানটি স্বয়ংক্রিয়ভাবে পুনরায় দাবি করা হয়েছে। কিছু মেল ক্লায়েন্ট একই কারণে একাধিক ফোল্ডারে ফাইল করা বার্তাগুলির জন্যও এটি ব্যবহার করে।


5
সম্ভবত ডিস্ক-ভিত্তিক সংস্করণ নিয়ন্ত্রণ ব্যবস্থা? আপনি যদি কিছু কিছু লিঙ্ক করেন তবে এটি ব্যাকআপ নয়। যদি আসল ফাইলটি দূষিত হয় তবে এর প্রতিটির হার্ডলিঙ্কটিও দূষিত হয়ে যায়।
D4RIO

1
অ্যাপলের টাইম মেশিনের মতো ইনক্রিমেন্টাল ব্যাকআপ সিস্টেমগুলির কথা ভাবেন। (এটা স্পষ্ট হওয়া উচিত যে এগুলি দুর্যোগ পুনরুদ্ধারের ধরণের ব্যাকআপ নয়, তবে "ওফস, আমি ফাইলটি দুর্ঘটনাক্রমে মুছে ফেলেছি" ব্যাকআপ।) ইনক্রিমেন্টাল ব্যাকআপের সমস্ত অপরিবর্তিত ফাইলগুলি একসাথে হার্ডলিঙ্কযুক্ত; যখন ফাইলটি পরিবর্তন করা হয়, পরবর্তী ক্রমিকগুলি পূর্ববর্তী সংস্করণে লিঙ্ক করার পরিবর্তে এটি অনুলিপি করে।
গাইকোসর

ধন্যবাদ, তারপরে ইনক্রিমেন্টাল ব্যাকআপ সিস্টেমগুলি ভার্সন কন্ট্রোল সিস্টেমগুলির সাথে একেবারে অনুরূপ = D
D4RIO

তবে কীভাবে ইনক্রিমেন্টাল ব্যাকআপ প্রক্রিয়া কোনও ফাইলের "পুরাতন" সংস্করণ সংরক্ষণ করে? 1) ব্যাকআপ এ তৈরি করা হয়েছে, এটি হার্ড এফ ফাইল এফ; 2) ফাইল এফ সংশোধিত; 3) পরের দিন ব্যাকআপ বি তৈরি হয়েছে ... দেখে মনে হচ্ছে আমি কিছু পাচ্ছি না
দিমিত্রি পশকভিচ

3

হার্ড লিঙ্কগুলি একই ডিস্ক স্পেসের কেবলমাত্র রেফারেন্স, এ কারণেই আপনি অন্য ফাইল সিস্টেমের কোনও কিছুকেই হার্ডলিঙ্ক করতে পারবেন না।

সিমলিংকগুলি হ'ল ফাইলগুলি যা অন্য ফাইলগুলির সাথে যুক্ত হয় (উইন্ডোজ শর্টকাট হিসাবে), সম্ভবত একই ফাইল সিস্টেমে, সম্ভবত না।

সম্পাদনা: আমি আরও কিছু ব্যাখ্যা করব। বিদ্যমান প্রতিটি ফাইলের সর্বনিম্ন 1 টি سخت লিঙ্ক রয়েছে। হার্ড লিঙ্কগুলি ফাইল সিস্টেমের একটি ইনোডের সামগ্রী অ্যাক্সেস করার উপায় । আপনি এই ফাইলটির সাথে একটি ls -iইনোড নম্বর পেতে এবং হার্ডলিংকের সংখ্যাটি statএই উদাহরণে নিম্নলিখিত হিসাবে পেতে পারেন :

$ stat plantilla-disenos.odt 
  File: «plantilla-disenos.odt»
  Size: 12367       Blocks: 32         IO Block: 4096   fichero regular
Device: 803h/2051d  Inode: 319875      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   d4rio)   Gid: ( 1000/   d4rio)
Access: 2011-02-11 21:36:19.000000000 -0300
Modify: 2010-03-02 23:27:28.000000000 -0300
Change: 2010-04-10 17:46:27.000000000 -0300

এই রেফারেন্সের জন্য ধন্যবাদ @ জেকোসোসর:

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

এবং এটি (সম্পাদিত):

অ্যাপল-এর ​​টাইম মেশিনের মতো ডিস্ক-ভিত্তিক বর্ধমান ব্যাকআপ ব্যবস্থার জন্য হার্ড লিঙ্কগুলি খুব কার্যকর , কারণ যেগুলি পরিবর্তিত হয়নি এমন ফাইলগুলির স্থান ভাগ করার সময় প্রতিটি ব্যাকআপের জন্য আপনার একটি সম্পূর্ণ ডিরেক্টরি ট্রি থাকতে পারে - এবং ফাইল সিস্টেম রেফারেন্স গণনা ট্র্যাক করে, তাই স্থানের কারণে ব্যাকআপটির মেয়াদোত্তীর্ণ হয়ে যাওয়া / অপসারণের কারণে প্রদত্ত সংস্করণটির শেষ রেফারেন্সটি চলে গেলে, ব্যবহৃত স্থানটি স্বয়ংক্রিয়ভাবে পুনরায় দাবী করা হয়। কিছু মেল ক্লায়েন্ট একই কারণে একাধিক ফোল্ডারে ফাইল করা বার্তাগুলির জন্যও এটি ব্যবহার করে।

চিয়ার্স


হার্ড লিঙ্কগুলি ব্যবহার করে পারফরম্যান্সের সুবিধা রয়েছে? অথবা, আপনি কেন কখনও কোনও সিমলিংকের পরিবর্তে একটি হার্ড লিঙ্ক ব্যবহার করবেন?
রিপার 234

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

@ রিপার 234: হার্ডলিঙ্কগুলি ডিস্কস্পেস-সেভিং সমাধান। একটি সিলিমিংক তৈরি করতে আপনার ফাইল সিস্টেম সম্পর্কে জানার দরকার নেই, তবে সিমলিংকগুলি তৈরি করার আগে আপনাকে ভাবতে হবে কারণ আপনি একটি লুপ বা দীর্ঘ রেজোলিউশন পাথ তৈরি করতে পারেন, সুতরাং এর মতো ফাংশনগুলি statব্যর্থ হবে।
D4RIO

@ গেকোসৌর: আমি আপনার জবাবটি যুক্ত করছি যেহেতু এটি খুব কার্যকর
D4RIO

সমস্যা নেই. আমি আসলে এটি আপনার কাছে মন্তব্য হিসাবে লেখা শুরু করেছি, তবে মন্তব্যগুলি খুব ছোট।
গীকোসৌর

3

একটি নরম লিঙ্ক অন্য পথের নাম নির্দেশ করে। সেই পথের নামটি আসলে থাকতে পারে বা নাও থাকতে পারে। আপনি সিমলিংক অ্যাক্সেস না করা পর্যন্ত পথটির সন্ধান করা হবে না। আপনি যখন অ্যাক্সেস করার চেষ্টা করছেন তখন যদি পথটি উপস্থিত না থাকে, আপনার একটি ভাঙা সিমিলিংক রয়েছে।

একটি হার্ড লিঙ্ক সহ, আপনার একাধিক নামের একটি ফাইল রয়েছে। আপনি এটি বলতে পারবেন না যে এর মধ্যে একটি "আসল" ফাইল এবং অন্যরা এটির জন্য কেবল একটি লিঙ্ক। তারা সবাই সমান। ভাঙ্গা সিঙ্কলিঙ্কগুলি যেভাবে ভাঙা হার্ড লিঙ্কের মতো কিছুই নেই।

হার্ড লিঙ্কগুলি কেবল একটি একক ফাইল সিস্টেমের মধ্যে কাজ করে। আপনি যদি কোনও আলাদা ফাইল সিস্টেমের কোনও ফাইলের সাথে লিঙ্ক করতে চান (যেমন একটি পৃথক বিভাজন বা একটি নেটওয়ার্ক ভাগ), আপনার অবশ্যই একটি সফট লিঙ্কটি ব্যবহার করতে হবে

আর একটি বড় পার্থক্য হ'ল আপনি যখন কোনও লিঙ্কযুক্ত ফাইলটি মুছবেন তখন কি হয়। যদি আপনি হার্ডলিংকযুক্ত ফাইলগুলির মধ্যে একটির মুছুন, তবে একই নামের সাথে একটি নতুন ফাইল তৈরি করুন, আপনার দুটি পৃথক ফাইল থাকবে (লিঙ্কটি চলে গেছে)। আপনি যদি কোনও সিমলিংকের লক্ষ্য মুছে ফেলেন এবং একই নামের সাথে একটি নতুন ফাইল তৈরি করেন, লিঙ্কটি নতুন ফাইলটির দিকে নির্দেশ করবে।


3

"শক্ত" লিঙ্কগুলি একই ইনোড ভাগ করে

$ touch foo
$ ln foo foolink # Creates a hard  link
$ ls -li foo foolink
54996 -rw-r--r-- 2 bsd users 0 2011-12-11 09:06 foo
54996 -rw-r--r-- 2 bsd users 0 2011-12-11 09:06 foolink

যদি আমি foo সম্পাদনা করি বা বোকা বানাই তবে কেবল একটি ফাইল আছে এবং এটি আপডেট হবে। আমি যদি কেবলমাত্র একটি ফাইলনাম সরিয়ে ফেলি তবে ইনোড এবং ডেটা বজায় থাকবে, বোকাচোঁচা বেঁচে থাকবে।

$ rm foo
$ ls -li foo foolink
ls: cannot access foo: No such file or directory
54996 -rw-r--r-- 1 bsd users 0 2011-12-11 09:06 foolink

যদি আমি একইটি তৈরি করতে চাইতাম তবে একটি "নরম" বা প্রতীকী লিঙ্ক সহ, তবে সেখানে একটি ফাইল, একটি ইনোড এবং একটি নতুন ফাইল রয়েছে যা প্রথমটির দিকে নির্দেশ করে তার নিজস্ব ইনোড রয়েছে with

$ touch foo
$ ln -s foo foolink # Create symlink
$ ls -li foo foolink
55029 -rw-r--r-- 1 bsd users 0 2011-12-11 09:11 foo
55033 lrwxrwxrwx 1 bsd users 3 2011-12-11 09:11 foolink -> foo

যদি আমি foo সম্পাদনা করি বা বোকা বানাই তবে এখনও কেবল একটি ফাইল রয়েছে এবং এটি আপডেট হবে।

আমি যদি কেবলমাত্র সিমলিংকটি অপসারণ করি তবে ইনোড এবং ডেটা অবিরত থাকবে। আমি যদি foo অপসারণ করি তবে ডেটা চলে যাবে, সিমিলিংকটি অবিরত থাকবে তবে অস্তিত্বহীন ফাইলের দিকে নির্দেশ করবে।

$ rm foo
removed `foo'
$ ls -l foo foolink 
ls: cannot access foo: No such file or directory
lrwxrwxrwx 1 bsd bsd 3 2011-12-11 09:11 foolink -> foo

1
তবে এর জন্য ব্যবহারিক ব্যবহার কী?
ew white

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

1
হার্ড লিঙ্কগুলির জন্য ব্যবহারিক ব্যবহারের ক্ষেত্রে। বর্তমানে আমার ফাইল সিস্টেমে আমি / usr / share / জোনেইনফোতে প্রচুর হার্ডলিঙ্কগুলি পেয়েছি টাইম অঞ্চলগুলিকে প্রতিনিধিত্ব করে এমন সমস্ত নামকৃত ফাইলগুলি সম্পর্কে ভাবুন যা সবগুলি EST এর মতো। আমরা অনর্থক অনুলিপি না রেখে ফাইল সিস্টেমের স্থান সংরক্ষণ করি এবং প্যাকেজগুলি ইনস্টল / মুছে ফেলা হিসাবে সিমলিঙ্কগুলি ইনস্টল / মোছার পরিচালনা না করেই সহজ প্যাকেজ পরিচালনার অনুমতি দেয়। এমনকি যদি কোনওটি সরানো হয় তবে মূল তথ্য সংরক্ষণ করা হয়। দুঃখিত, আরও পেডেন্টিক ব্যাখ্যার জন্য আমার কাছে সময় নেই।
বিএসডি

1

হার্ড লিঙ্কগুলি একই ফাইলের অতিরিক্ত ডিরেক্টরি এন্ট্রি are এর মানে

  • কোনও ফাইলের সমস্ত হার্ড লিঙ্কগুলি অবশ্যই একই ফাইল সিস্টেমে থাকতে হবে (কারণ ডিরেক্টরি এন্ট্রি কোনও ভিন্ন ফাইল সিস্টেমের কোনও ফাইলকে নির্দেশ করতে পারে না), তবে একই ডিরেক্টরিতে অগত্যা নয়।
  • মূল ডিরেক্টরি এন্ট্রি এবং নতুন হার্ড লিঙ্কের মধ্যে কোনও পার্থক্য নেই; অপারেটিং সিস্টেমের দৃষ্টিকোণ থেকে, তারা একই ফাইলটিতে কেবল দুটি ডিরেক্টরি প্রবেশিকা। সমস্ত হার্ড লিঙ্কগুলি মুছে ফেলা হলেই একটি ফাইল মুছে ফেলা হয় (এবং অতিরিক্তভাবে, সেই ফাইল এখনও খোলা নেই এমন কোনও প্রক্রিয়া বাকি নেই)।
  • আপনি যদি "আসল" নাম পরিবর্তন / নামকরণ করেন, যতক্ষণ না আপনি এটিকে অন্য ফাইল সিস্টেমে না সরান, অন্য হার্ড লিঙ্কগুলি প্রভাবিত হবে না; তারা এখনও একই ফাইলের দিকে নির্দেশ করে।
  • অনেক সম্পাদক সংরক্ষণের সময় নতুন ফটোগুলি একই ফাইলে লিখেন না, বরং নিম্নলিখিত পদ্ধতিটি করুন:

    1. একটি নতুন ফাইলে নতুন সামগ্রী লিখুন ।
    2. পুরানো ফাইলটির নাম একটি ব্যাকআপ নামে রাখুন (বা, যদি পূর্ববর্তী ফাইল সংস্করণটির ব্যাকআপ রাখে না, কেবল এটি মুছুন)।
    3. পূর্ববর্তী ফাইলটির নামে নতুন লিখিত ফাইলটির নাম পরিবর্তন করুন।

    এই স্কিমটির অর্থ হ'ল একই ফাইলের অন্য কোনও হার্ড লিঙ্কগুলি এখনকার ফাইলটির দিকে আর নির্দেশ করবে না, তবে পূর্ববর্তী সংস্করণে (এটি সত্য সত্য যদি সম্পাদক পুরানো ফাইলটি মুছে ফেলেন তবে ইউনিক্সের অধীনে, কোনও ফাইল "মুছে ফেলা" হবে কেবলমাত্র এর লিঙ্কটি মোছার অর্থ; মুছে ফেলা লিঙ্কটি কেবলমাত্র যদি আসল ফাইলটি মুছে ফেলা হয়)।

  • যেহেতু হার্ড লিঙ্কটি সরাসরি ফাইলে চলে যায়, সেই ফাইলের মূল অবস্থানটিতে আপনার অ্যাক্সেস না থাকলেও আপনি সেই ফাইলটি অ্যাক্সেস করতে পারেন (উদাহরণস্বরূপ যে মূল ডিরেক্টরিতে ডিরেক্টরিতে আপনার কোনও অনুমতি নেই) । আপনার অ্যাক্সেস নির্ধারণের একমাত্র অধিকারগুলি হ'ল ফাইলটির অ্যাক্সেসের অধিকারগুলি (যা ফাইলের সাথে সম্পর্কিত, লিঙ্কের সাথে নয়; আপনি একই ফাইলের জন্য পৃথক অনুমতি দিয়ে কঠোর লিঙ্ক তৈরি করতে পারবেন না) এবং হার্ড লিংকের পাথের অ্যাক্সেসের অধিকার এতে অন্তর্ভুক্ত রয়েছে (মূলত, লিঙ্কটি যে ডিরেক্টরিতে থাকে এবং যে কোনও প্রত্যক্ষ ও পরোক্ষ অভিভাবক ডিরেক্টরিগুলিই সম্পাদন করে) rights

প্রতীকী লিঙ্ক, অপরপক্ষে, সংরক্ষণ পথনাম (- বরং বা তার ডিরেক্টরির এন্ট্রি - ফাইল নাম সম্ভাব্য মত তার পাথ সহ, /bin/shবা subdir/foo.bar) - অন্য ফাইল করুন। যদি পথের নামটি আপেক্ষিক হয় তবে লিংকটি যে ডিরেক্টরিটি অন্তর্ভুক্ত থাকে তার তুলনায় এটি সর্বদা ব্যাখ্যা করা হয় That এর অর্থ:

  • একটি প্রতীকী লিঙ্কটি পৃথক ফাইল সিস্টেমে ফাইলগুলিকে উল্লেখ করতে পারে (এমন কোনও ফাইল সিস্টেমে যা নিজেই শক্ত বা নরম লিঙ্কগুলি সমর্থন করে না, যেমন ফ্যাট)।

  • যদি মূল ফাইলটি মুছে ফেলা হয় তবে প্রতীকী লিঙ্কটি ফাইলের সামগ্রী সংরক্ষণ করে না। একই ফাইলে অন্য হার্ড লিঙ্কগুলি না থাকলে ফাইলের সামগ্রীটি চলে যাবে। প্রতীকী লিঙ্কটি তখন ঝুলন্ত অবস্থায় থাকবে (এটি কোনও ডিরেক্টরি নামের সাথে উল্লেখ করা হবে যা ডিরেক্টরিতে প্রবেশের সাথে মিল নেই)। অন্যদিকে, প্রতীকী লিঙ্কটি মোছার ফলে মূল ফাইলটি প্রভাবিত হয় না, কারণ এটি কেবলমাত্র এর নামের নাম উল্লেখ করে।

  • যদি আসল ফাইলটি সরানো বা পুনরায় নামকরণ করা হয়, তবে প্রতীকী লিঙ্কটি আপডেট হয় না, তবে বাম ঝুল। আপনি যদি প্রতীকী লিঙ্কটি সরান, এটি কেবল তখনই ভেঙে যায় যদি এতে কোনও আপেক্ষিক পাথ থাকে এবং পথটি নতুন অবস্থান থেকে আর কার্যকর হয় না।

  • যদি মূল ফাইলটি একই নামের সাথে একটি নতুন ফাইল দ্বারা প্রতিস্থাপন করা হয় (উপরে বর্ণিত সম্পাদক দৃশ্যে), লিঙ্কটি নতুন ফাইলটিকে বোঝায়।

হার্ড লিঙ্কগুলির বেশিরভাগ ব্যবহার মূলত একটি ফাইলের অনুলিপি দুটি ফাইল সংরক্ষণ না করে রাখার উপায়। ফাইলগুলি আবার কখনও পরিবর্তন না করা হলে এটি সর্বোত্তম কাজ করে, অন্যথায় দুর্ঘটনাক্রমে লিঙ্কটি ভাঙ্গা সহজ (উপরের সম্পাদক চিত্র দেখুন)। অবশ্যই কয়েকটি ক্ষেত্রে আপনি লিংকটি নষ্ট হয়ে যেতে চান , যেমনটি বেশ কয়েকটি ব্যাকআপ রাখার ক্ষেত্রে: নতুন ব্যাকআপগুলিতে পরিবর্তিত ফাইলগুলির জন্য, আপনি পুরানো ব্যাকআপগুলিতে অনুলিপিটিও পরিবর্তন করতে চান না।

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


1

হার্ড লিঙ্ক (কেবল ফাইলগুলি) বনাম সফট লিঙ্ক (ফাইল বা ডিরেক্টরি) বনাম বিআইএনডি (ডিরেক্টরিগুলির জন্য হার্ড লিঙ্ক)

পোস্টটি পড়ার আগে এই চিত্রটি দেখুন
(উত্স: freesoftwareservers.com )

ডেক্সেলরোডের উত্তরটি প্রশ্নটি ভালভাবে ব্যাখ্যা করার সময়, আমি ভেবেছিলাম যে এই ক্ষেত্রে চিত্রটি একটি বড় পার্থক্য করেছে, বিশেষত এমন নতুনদের জন্য যারা ইনডগুলি এবং জটিল লিনাক্স জারগনকে এখনও বেশ বোঝেন না to

এটি ভাবুন, আপনি যদি নিজের ড্রাইভ থেকে সমস্ত কিছু "মুছে ফেলা" করেন তবে ডেটা পুনরুদ্ধার করার জন্য আপনি সফ্টওয়্যার চালনা করতে পারেন, কারণ 1 এবং 0 টি এখনও রয়েছে, আপনি কেবলমাত্র সমস্ত হার্ড লিঙ্কগুলি মুছলেন। পুনরুদ্ধার সফ্টওয়্যারটির উদ্দেশ্য হল 0 এবং 1 এর বোঝার জন্য হার্ড লিঙ্কগুলি পুনর্নির্মাণ

আমি একটি দুর্দান্ত "ওয়ান লাইনার" পড়েছি যা এগুলি বোঝায় এবং আমি ভাগ করে নিতে চাই!

লিনাক্সের সমস্ত ফাইলগুলি ডিস্কের 0 ও 1 এর "হার্ড লিঙ্কগুলি"। আপনি যখন কোনও ডেটা তৈরি করেন (0 এর & 1 এর) হার্ড ডিস্কের সেই স্পটটি উল্লেখ করার জন্য ওএস ফাইল ট্রিতে একটি হার্ড লিঙ্ক তৈরি করে।

হার্ড লিঙ্ক 2 তৈরি করুন এবং হার্ড লিঙ্ক 1 টি আসল ফাইলটি মুছুন :

আপনি অন্য একটি হার্ড লিঙ্ক তৈরি করতে পারেন এবং আসল ফাইলটি মুছতে পারেন এবং আপনার এখনও সদ্য নির্মিত হার্ড লিঙ্কটিতে অ্যাক্সেস রয়েছে।

সফট লিঙ্কযুক্ত ফাইল (হার্ড লিঙ্ক 1) মুছুন:

আপনি যদি হার্ড লিঙ্ক 1 মুছে ফেলেছেন, আপনি কি মনে করেন সফট লিঙ্কটি কাজ করবে? না, ওএস আবার জানিয়ে দেবে যে হার্ড লিঙ্ক 1 উপস্থিত নেই।

হার্ড লিঙ্কে সফট লিঙ্ক মুছুন:

বিপরীতে, আপনি যদি সফট লিঙ্কটি মুছে ফেলেন তবে হয় হার্ড লিঙ্কটিও কাজ করবে? হ্যাঁ. যতক্ষণ না ওএসের একটি হার্ড লিঙ্ক ফাইল থাকে ততক্ষণ এটি প্রতিবেদন করবে যে ফিলটি মোছা হয়নি।

- এছাড়াও গবেষণা / উল্লেখ করার মতো মূল্য হ'ল BIND, দুটি ডিরেক্টরিকে দুটি ডিরেক্টরি সিমিলিং করার মতো দুটি ডিরেক্টরি বানানোর উপায়, তবে এটি ওএসের কাছে স্বচ্ছ (যখন আপনি সিমলিংক করেন এবং কিছুতে আবহাওয়া সম্পর্কিত নিয়ম রয়েছে যা তারা সিমলিংকগুলি অনুসরণ করতে পারে)। এটি এলএস নয়, মাউন্ট ব্যবহার করে এবং এফএসটিএবিএফের মাধ্যমে কনফিগার করা যায়।

একটি BIND মাউন্ট কি


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

আপনি ডিরেক্টরিগুলি সিমলিংক করতে পারার সময় এটি ফাইল সিস্টেমে একটি সিমিলিংক হিসাবে দেখায়, আপনি যদি বাঁধাই করেন তবে এটি ওএসের থেকে স্বচ্ছ। ঠিক একটি ফাইলের মতো দেখায়।
ফ্রিসফটওয়্যার সার্ভারগুলি

1
(1) আসলে, লিনাক্সের কমপক্ষে কয়েকটি সংস্করণে আপনি কোনও ফাইলকে মাউন্ট করতে পারেন । (২) বাইন্ড মাউন্টগুলি হার্ড লিঙ্কগুলির সাথে খুব মিল দেখায়, "বাইন্ড কেবল হার্ড লিঙ্কগুলির সমান (তবে আপনি হার্ড ডিরেক্টরিকে লিঙ্ক করতে পারেন না") বলা সহজভাবে ভুল।
জি ম্যান

@ জি-ম্যান, সম্মতিযুক্ত এবং সরানো হয়েছে, কেবলমাত্র একটি নোট BIND উল্লেখ করে
ফ্রিসফটওয়্যার সার্ভারগুলি

@ নিখরচায় নরম লিঙ্কটি কোনও ফাইলের নামের দিকে নির্দেশ করে (হার্ড লিঙ্ক 1); স্কিমেটিক্স, এটি সুস্পষ্ট করা উচিত।
জেবি।

0

হার্ড লিঙ্কটি কোনও ফাইলকে ডিস্কে রাখবে যতক্ষণ না এর সাথে সমস্ত হার্ড লিঙ্কগুলি, এমনকি প্রথম (একটি "ফাইল নাম" প্রযুক্তিগতভাবে একটি হার্ড লিঙ্ক), মুছে ফেলা না হয়। এটি পয়েন্ট (গুলি / এডি) ফাইলটি প্রতিস্থাপন না করা পর্যন্ত একটি নরম লিঙ্কটি "ঝাঁকুনি" রেখে যেতে পারে।


0

এটি একটি খুব পুরানো প্রশ্ন তবে আমার একটি ব্যবহারের কেস রয়েছে যা আমাকে হার্ড লিঙ্কগুলি ব্যবহার করার জন্য প্রয়োজন।

আমি একজন সংগীতশিল্পী এবং তাই আমার ম্যাকের সাথে সংযুক্ত কয়েকটি হার্ড ড্রাইভে আমার কাছে প্রচুর এবং প্রচুর অডিও ফাইল রয়েছে। টেরাবাইট মূল্য। আমি সেগুলি বেশিরভাগই সিমলিংক ডিরেক্টরিগুলির সাথে খুব সুন্দরভাবে সংগঠিত করেছি যাতে আমি কীভাবে আমি কীভাবে ভাবছি তার উপর ভিত্তি করে বিষয়বস্তু প্রকাশক, শৈলী / শব্দ এবং অন্যান্য মানদণ্ডগুলির দ্বারা সেগুলি খুঁজে পেতে পারি। দুর্ভাগ্যক্রমে আমি যে প্রোগ্রামটি ব্যবহার করি, অ্যাবলটন লাইভ এটির ফাইল ব্রাউজার থেকে এলিয়াস বা সিমলিংকগুলি সম্পূর্ণরূপে অক্ষম। আমি যে সমাধান খুঁজে পেয়েছি তা হ'ল ডিরেক্টরিগুলির হার্ড লিঙ্কগুলি তৈরি করা যা আমি এটি দেখতে সক্ষম হতে চাই এবং তারপরে সবকিছু দুর্দান্ত কাজ করে।

সুতরাং, আপনার যখন হার্ড লিঙ্কগুলি ব্যবহার করার প্রয়োজন হতে পারে এটির অন্য ক্ষেত্রে এটি অন্যদের মধ্যে ঘটে নাও পারে।


আমি অ্যাবলটন লাইভের জন্য একটি বাগ রিপোর্ট দায়ের করব। তারা এটিকে ঠিক করতে সক্ষম হতে পারে।
অ্যাভেন্টুরিন

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