আপনি যখন কোনও হার্ড লিঙ্ক মুছবেন তখন কী হবে?


59

যদি আপনি করেন rm myFileযেখানে myFileএকটি হার্ড লিঙ্ক আছে, তখন কী ঘটে?

উত্তর:


110

ইউনিক্সে সমস্ত সাধারণ ফাইল হ'ল হার্ডলিংক। ইউনিক্সের হার্ডলিংকগুলি (এবং সর্বাধিক (সমস্ত?)) ফাইল সিস্টেমগুলিকে একটি বলা হয় তার উল্লেখ inodeinodeএকটি রেফারেন্স কাউন্টার আছে, যখন আপনি ফাইলে এক "লিঙ্ক" (যা স্বাভাবিক কার্যপ্রণালী হয়) কাউন্টার 1. হয় যখন আপনি একটি দ্বিতীয়, তৃতীয়, চতুর্থ, ইত্যাদি লিঙ্ক তৈরি করেছি, এবার পাল্টা বৃদ্ধি করা হয় (বর্ধিত) প্রতিটি সময় এক এক। আপনি যখন rmকোনও লিঙ্ক মুছবেন তখন কাউন্টারটি একে একে হ্রাস (হ্রাস) করা হবে। যদি লিঙ্ক কাউন্টারে 0 পৌঁছে যায় তবে ফাইল সিস্টেম অপসারণ করে inodeএবং ব্যবহারের জন্য উপলব্ধ স্থানটি চিহ্নিত করে।

সংক্ষেপে, যতক্ষণ না আপনি শেষ লিঙ্কটি মুছবেন না ততক্ষণ ফাইলটি থেকে যাবে।

Edit:শেষ লিঙ্কটি সরানো হলেও ফাইলটি থাকবে । কোনও ফাইলের মধ্যে থাকা ডেটা সুরক্ষার বিষয়টি নিশ্চিত করার একটি উপায় যা অন্য কোনও প্রক্রিয়াতে অ্যাক্সেসযোগ্য নয়। ফাইল সিস্টেম থেকে ডেটা সম্পূর্ণরূপে সরানো কেবলমাত্র তখনই করা হয় যদি ডেটাটির মেটাডেটাতে দেওয়া হিসাবে এর সাথে 0 টি লিঙ্ক থাকে এবং কোনও প্রক্রিয়া দ্বারা এটি ব্যবহার না করা হয়।

এই আইএমএইচও হ'ল হার্ড-লিঙ্কগুলি বোঝার সহজতম উপায় (এবং সফটলিঙ্কগুলি থেকে এটির পার্থক্য)।


7
তদতিরিক্ত, একটি ফাইল মুছতে সিস্টেম কল হয় unlink()
mouviciel

1
এটি সর্বশেষ লিঙ্কটি সম্পাদনা করার সময় ফাইলটি যেখানে খোলা থাকে তা coverেকে রাখে না unlink
সিজেএম

5
@ ওরেঞ্জডগ, ঠিক নয়, কারণ হার্ডলিঙ্কগুলি ফাইল সিস্টেমগুলি অতিক্রম করতে পারে না, এবং /procএটি একটি পৃথক (ভার্চুয়াল) ফাইল সিস্টেম files
সিজেএম

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

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

12

আমি যা ভাবি তার চেয়ে টেস্টিং সহজ ছিল: আমি একটি পাঠ্য ফাইল তৈরি করেছি, তারপরে এর সাথে শক্ত লিঙ্ক যুক্ত। হার্ড লিঙ্ক মোছা হচ্ছে না না ফাইল এটি hardlinked করা হয় এবং যে ফাইলটি দেহাবশেষ এটা যেখানে লিঙ্ক করা হয়েছে তা মোছা।


1
এটি সত্য, তবে একটি সম্পূর্ণ চিত্র নয়
xenoterracide

3
মূলটি হ'ল পাঠ্য ফাইল তৈরি করা একটি শক্ত লিঙ্কও যুক্ত করে। * এনআইএক্স ফাইল সিস্টেমে, সমস্ত ফাইল (ইনোডস) ডিরেক্টরি কাঠামোর মধ্যে অন্তত একবার হার্ডলিঙ্ক করা উচিত।
মনিকাকে আঘাত করা বন্ধ করুন

0

আপনার ডিস্কের সমস্ত ফাইলই আসলে আপনার ড্রাইভের আসল ডেটার দিকে নির্দেশক। এখানে চিত্র বর্ণনা লিখুন

আপনি যখন সেই ফাইলটির জন্য একটি হার্ডলিঙ্ক তৈরি করেন তখন হার্ডলিঙ্ক-এড ফাইলটি একই ফাইলের দিকে নির্দেশ করবে যা মূল ফাইলটি নির্দেশ করেছিল।

এখানে চিত্র বর্ণনা লিখুন

উদাহরণস্বরূপ, a.txt ড্রাইভে থাকা ফাইলটির ডেটা (বাইট) নির্দেশ করছে, যখন হার্ডলিঙ্ক বি.এস.টি.এস.টি তৈরি করা হবে তখন এটি a.txt এর দিকে কী ইঙ্গিত করেছিল তা নির্দেশ করবে।

সুতরাং এগুলির একটি অপসারণ করা একে অপরের সাথে পৃথক হওয়া অন্যকে প্রভাবিত করবে না।

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


2
আমি মনে করি এটি স্পষ্ট করা আপনার কাছে গুরুত্বপূর্ণ যা আপনি FILE "A.txt"সাদৃশ্যপূর্ণ LINK "B.txt", বিশেষত যেমন আপনি একটিকে FILEএবং অন্যটিকে একটি বলেছিলেন LINK। লিঙ্কটি আসলে কালো তীর is
রোয়াইমা

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