একটি হার্ড লিঙ্ক এবং একটি ফাইলের মধ্যে পার্থক্য কী?


37

একটি হার্ড লিঙ্কটি একটি ইনোডের পয়েন্টার হিসাবে সংজ্ঞায়িত করা হয়। একটি নরম লিঙ্ক , যা প্রতীকী লিঙ্ক হিসাবেও পরিচিত , হার্ড লিঙ্কগুলির সীমাবদ্ধতা ছাড়াই অন্য লিঙ্কে নির্দেশ করে একটি স্বাধীন ফাইল হিসাবে সংজ্ঞায়িত করা হয়।

একটি ফাইল এবং একটি হার্ড লিঙ্কের মধ্যে পার্থক্য কী? একটি হার্ড লিঙ্ক একটি ইনোডে নির্দেশ করে, সুতরাং একটি ফাইল কি? নিজেই ইনোডে প্রবেশ করবে? বা একটি হার্ড লিঙ্ক সহ একটি ইনোড?

ধরা যাক আমি স্পর্শ সহ একটি ফাইল তৈরি করি। তারপরে ইনোড সারণিতে একটি ইনোড এন্ট্রি তৈরি করা হয় । এবং আমি একটি হার্ড লিঙ্ক তৈরি করি, যার ফাইলের মতো একই ইনোড নম্বর রয়েছে। সুতরাং আমি কি একটি নতুন ফাইল তৈরি করেছি? অথবা ফাইলটি কি কেবল একটি ইনোড হিসাবে সংজ্ঞায়িত করা হয়েছে?


এই প্রায় অবশ্যই অনুরূপ unix.stackexchange.com/questions/9575/...
infixed

7
@ ইনফিক্সড হুবহু নয়, আমি একটি ফাইল এবং একটি হার্ড লিঙ্কের পার্থক্য জিজ্ঞাসা করছি।
লেভেন্ট ডিভিলিওগ্লু

সুতরাং আমি আমার আসল উত্তরটি মুছে ফেলেছি বলে আমি বিশ্বাস করি যে এই লিঙ্কযুক্ত প্রশ্নের উত্তরও coveredাকা ছিল। তাহলে কি এখনও 'ঠিক না'?
ইনপিক্সড

7
একটি ফাইল এবং একটি হার্ডলিঙ্কের মধ্যে পার্থক্যটি আপনার এবং ফোনবুকের আপনার নামের সাথে রেখার মধ্যে পার্থক্য হিসাবে একই।
Jörg W Mittag

উত্তর:


61

খুব সংক্ষিপ্ত উত্তরটি হ'ল:

  • একটি ফাইল ডেটা বেনামে ব্লব হয়
  • হার্ডলিঙ্ক একটি ফাইলের নাম
  • একটি প্রতীকী লিঙ্ক একটি বিশেষ ফাইল যার বিষয়বস্তুটির একটি পথের নাম

ইউনিক্স ফাইল ও ডিরেক্টরিগুলি কাজ ঠিক ফাইল এবং বাস্তব জগতে ডিরেক্টরি (এবং মত না মত ফোল্ডার বাস্তব জগতে); ইউনিক্স ফাইল সিস্টেমগুলি (ধারণাগতভাবে) এর মতো কাঠামোযুক্ত:

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

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

বা, আমি কেন ঝোলা সংকেত পেতে পারি? ঠিক আছে, সিমিলিংকে কেবল একটি পথ নাম রয়েছে। এমন কিছু নেই যা বলছে যে আসলে সেই নামটি দিয়ে একটি ফাইল থাকতে হবে।

আমার প্রশ্নটি কেবল একটি ফাইল এবং একটি হার্ড লিঙ্কের পার্থক্য কী?

একটি ফাইল এবং একটি হার্ড লিঙ্কের মধ্যে পার্থক্য ফোন বইতে আপনার নামের সাথে এবং আপনার লাইনের মধ্যে পার্থক্য।

হার্ড লিঙ্কটি একটি ইনোডের দিকে ইঙ্গিত করছে, সুতরাং একটি ফাইল কী? ইনোডে নিজেই প্রবেশ করবেন? বা একটি শক্ত লিঙ্কযুক্ত একটি ইনোড?

একটি ফাইল ডেটা বেনামে টুকরা হয়। এটাই. একটি ফাইল, একটি inode না থাকা অবস্থায় কোনো ফাইল আছে একটি inode, ঠিক তুমি কি একটি সামাজিক নিরাপত্তা নম্বর, তাই আছে একটি এসএসএন।

একটি হার্ড লিঙ্ক একটি ফাইলের নাম। একটি ফাইলের অনেক নাম থাকতে পারে।

ধরা যাক, আমি স্পর্শ দিয়ে একটি ফাইল তৈরি করি, তারপরে ইনোড সারণিতে একটি ইনোড এন্ট্রি তৈরি করা হবে ।

হ্যাঁ।

এবং আমি একটি হার্ড লিঙ্ক তৈরি করি, যার ফাইলের সাথে একই ইনোড নম্বর রয়েছে।

না। একটি হার্ড লিঙ্কটিতে একটি ইনোড নম্বর নেই, কারণ এটি কোনও ফাইল নয়। কেবল ফাইলের ইনোড নম্বর রয়েছে।

হার্ডলিঙ্ক একটি নামকে ইনোড সংখ্যার সাথে যুক্ত করে।

সুতরাং আমি কি একটি নতুন ফাইল তৈরি করেছি?

হ্যাঁ।

অথবা ফাইলটি কেবল একটি ইনোড হিসাবে সংজ্ঞায়িত করা হয়েছে?

নং ফাইলে একটি inode আছে, এটা নয় একটি inode।


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

2
@ আইএমএসওপি এটি একটি প্রজন্মের ব্যবধান। কম্পিউটারের আগে একটি ফোন বই একটি ডিরেক্টরি ছিল the কেমব্রিজ অভিধান বলছে: " ডিরেক্টরি: একটি বই যা নাম, ঠিকানা বা অন্যান্য তথ্যগুলির একটি তালিকা দেয় [... উদাহরণস্বরূপ] টেলিফোনের ডিরেক্টরিতে তাদের নম্বরটি দেখুন " "
কুব্যাঞ্জিক

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

"একটি হার্ড লিঙ্কের একটি ইনোড নম্বর নেই" এই বাক্যাংশের "হ্যাভ" শব্দটি সম্ভবত বিভ্রান্তিকর, কারণ আপনি তখনই বলবেন যে "হার্ডলিঙ্ক একটি নামকে একটি ইনোড নম্বর যুক্ত করে"। "হার্ডলিঙ্ক" ডিরেক্টরিতে প্রবেশের ডেটা-কাঠামোটিতে আসলে ইনোড # রয়েছে - এইভাবে লিঙ্কটি ইনোড # এর সাথে "যুক্ত" হয়। "নেই" দ্বারা আমার মনে হয় আপনি বোঝাতে চাইছেন যে হার্ডলিঙ্কটিতে একটি ইনোড নেই # যা নির্দেশ করে যে লিঙ্কটি ডিস্কে কোথায় রয়েছে।
কেলভিন

2
এই বলে যে একটি ফাইল আছে একটি inode কিছুটা বিপরীত হয়ে গেছে। ইনোড হ'ল সেই কাঠামোতে যেখানে "ডেটা ব্লব" কোথায় থাকে সে সম্পর্কে তথ্য থাকে। যদি কোনও ইনোড না থাকে তবে কোনও ফাইল নেই।
বার্মার

18

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

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

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

আপনি যখন বিদ্যমান ফাইলে ( ln existing new) একটি হার্ড লিঙ্ক তৈরি করেন, আপনি একই ফাইলটির দ্বিতীয় লিঙ্ক তৈরি করছেন, অর্থাৎ আপনি একটি নতুন ডিরেক্টরি এন্ট্রি তৈরি করছেন যা ইতিমধ্যে বিদ্যমান ফাইলের সাথে লিঙ্ক রয়েছে। তৈরির পরে, দুটি ডিরেক্টরি এন্ট্রি সমান মর্যাদা পেয়েছে: এখানে একটি "প্রাথমিক" এবং "গৌণ" এর একটি নেই, তারা একই ফাইলে কেবল দুটি লিঙ্ক।

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


যথাক্রমে কড়া এবং নরম লিঙ্কগুলি প্রথম চালু করা হয়েছিল?
n611x007

2
@ n611x007: আপনার যদি নতুন বা ফলো-আপ প্রশ্ন থাকে তবে আপনি কি দয়া করে একটি নতুন প্রশ্ন খুলতে পারবেন ? মন্তব্য বিভাগটি উপযুক্ত নয় বা নতুন প্রশ্ন বা বর্ধিত আলোচনার জন্য। ধন্যবাদ।
ডেভিড ফোস্টার

1
@ n611x007 হার্ড লিঙ্কগুলি ইউনিক্সের চেয়ে পুরনো, ভি 1 এ রয়েছে । ইউনিক্সের সিমলিংকগুলি কিছুটা নতুনতর; উইকিপিডিয়ায় কিছু ইতিহাস রয়েছে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

রুম এবং দরজা একটি দুর্দান্ত উপমা! সিমলিংকগুলি তখন দরজার লক্ষণগুলির মতো।
কৌতূহলীনি

1
@ কুরিয়াসনডানাই: সিমলিংকগুলি এমন কক্ষের মতো যাঁরা বসে আছেন তাদের মধ্যে যারা বলে যে "ওআই এম 8 ভুল অফিসের পরিবর্তে # 234 এ যান"
মনিকার সাথে লাইটনেস রেস

8

অন্যান্য সমস্ত উত্তর ছাড়াও আমি নিম্নলিখিত গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি উল্লেখ করতে চাই:

একটি সফটলিঙ্ক হ'ল একটি সত্য উল্লেখ একটি সফটলিঙ্ক সমাধান করা অ্যাপ্লিকেশনটির সাথে স্বচ্ছভাবে ঘটে: যদি কোনও প্রক্রিয়া কোনও ফাইল খোলায় তবে বলুন /this/path/hereযেটি একটি সিমলিংক যা নির্দেশ করে /that/other/pathতবে খোলার পুরো পরিচালনাটি /that/other/pathওএস দ্বারা সম্পন্ন হয়। তদুপরি, যদি /that/other/pathনিজেই একটি সিমলিংক হয়ে থাকে তবে এটি ওএস দ্বারাও মোকাবেলা করা হচ্ছে। প্রকৃতপক্ষে, ওএস সিমলিংকের শৃঙ্খলা অনুসরণ করে যতক্ষণ না এটি অন্য কিছু খুঁজে পায় (যেমন একটি নিয়মিত ফাইল) অথবা এটি অনেকগুলি এন্ট্রি না পৌঁছানো SYMLOOP_MAX(দেখুন sysconf(3)), সেই ক্ষেত্রে ওএস (আরও সুনির্দিষ্টভাবে: সিস্টেম কল) একটি ত্রুটি প্রদান করে এবং সেট করে errnoto ELOOP। সুতরাং, মত একটি বিজ্ঞপ্তি রেফারেন্স xyz -> xyzপ্রক্রিয়া থামাতে হবে না। (লিনাক্স সিস্টেমগুলির path_resolution(7)জন্য সম্পূর্ণ বিবরণ দেখুন ))

মনে রাখবেন যে কোনও প্রক্রিয়া কোনও পাথের নাম একটি সিমিলিংক কিনা তা পরীক্ষা করে দেখতে পারে এবং এর lstat(2)মাধ্যমে lchown(2)এবং অন্যদের ( symlink(7)পুরো গল্পের জন্য দেখুন ) এর মাধ্যমে তার ফাইল বৈশিষ্ট্যগুলি (ইনোড টেবিলের মধ্যে সঞ্চিত) সংশোধন করতে পারে can

এখন, অনুমতির শর্তে আপনি লক্ষ্য করবেন যে সিমলিংকের সর্বদা অনুমতি রয়েছে 777 ( rwxrwxrwxপ্রতীকী স্বরলিপিতে)। এটি হ'ল প্রকৃত ফাইল অ্যাক্সেসের মাধ্যমে অন্য কোনও অনুমতিকে বাইপাস করা যেতে পারে। বিপরীতে, একটি সিমিলিংকের জন্য 7 777 সিমলিংকযুক্ত ফাইলটি যদি প্রথম স্থানে অ্যাক্সেসযোগ্য না হয় তবে তা অ্যাক্সেসযোগ্য করে না। উদাহরণস্বরূপ, অনুমতিগুলির সাথে একটি সিমলিংক 7 777 টি অনুমতি নিয়ে একটি ফাইলের দিকে নির্দেশ করে 40৪০ ফাইলটি "অন্য" (সাধারণ জনগণ) এর জন্য অ্যাক্সেসযোগ্য করে না। অন্য কথায়, কোনও ফাইল xyzকোনও সিমলিংকের মাধ্যমে অ্যাক্সেসযোগ্য যদি কেবলমাত্র এটি সরাসরি অ্যাক্সেসযোগ্য হয়, অর্থাত্ ইন্ডিয়ারেশন ছাড়াই। সুতরাং, সিমলিংকের অনুমতিগুলির কোনও সুরক্ষা প্রভাব নেই।

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

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

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


6

একটি সহজ উত্তর:

  • ডিরেক্টরিতে একটি ফাইল এন্ট্রি সেই ফাইলটির একটি হার্ড লিঙ্ক।

  • কিছু ফাইলের একের অধিক হার্ড লিঙ্ক থাকে, কারণ একই ফাইলে একাধিক হার্ড লিঙ্ক অনুমোদিত।


3

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

একটি হার্ড লিঙ্ক একটি ইনোডে একাধিক ফাইলের নাম নির্ধারণ করছিল। আপনি একটি ফাইল তৈরি করতে পারেন, এটির সাথে দ্বিতীয় নামটি হার্ড লিঙ্ক করতে পারেন এবং প্রথম নামটি মুছতে পারেন এবং এটি কেবল দ্বিতীয় স্থানে ফাইলটি তৈরি করা থেকে আলাদা ছিল না isting

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

প্রোগ্রামগুলি চলাকালীন লিনাক্সের জন্য জিনিসগুলিকে আপগ্রেড করা সহজ করে তোলে। যদি কোনও প্রক্রিয়া একটি এক্সিকিউটেবল চলমান থাকে এবং একটি আপডেট ঘটে থাকে তবে প্রোগ্রামটির নামটি পুনরায় ব্যবহার করা যায়, তবে পুরানো সংস্করণযুক্ত ইনডটি এখনও বিদ্যমান তাই এটি চালিয়ে যেতে পারে। এবং যখন পুরানো সংস্করণ চলমান শেষ প্রক্রিয়াটি বন্ধ হয়ে যায়, তখন সেই পুরানো সংস্করণ স্টোরেজ প্রকাশিত হয়।

সফট লিংকগুলি সম্পর্কে এলো কারণ যখন আপনার একাধিক মাউন্ট পয়েন্ট সহ একক ফাইল ফাইল থাকে তখন আপনি একটি হার্ড ড্রাইভ থেকে অন্য একটি ইনোডে একটি হার্ড লিঙ্ক তৈরি করতে পারেন না। তাই নরম লিঙ্কগুলি উদ্ভাবিত হয়েছিল।


আমি এই সদৃশ unix.stackexchange.com/questions/9575/...
infixed

2
early daysএখন কেন এটি অন্যরকম? আপনার উত্তরটি কোনওভাবেই সেই দৃশ্যের প্রতিফলন বলে মনে হচ্ছে না?
n611x007

@ n611x007 কারণ 'আজকাল' লিনাক্সের মতো জিনিসগুলি নন-ইউনিক্স টাইপ ফাইল সিস্টেমগুলিকে মাউন্ট করতে পারে যা ইনোড মডেলটির সাথে খাপ খায় না। উদাহরণস্বরূপ FAT ডেরিভেটিভস এবং ISO-9660 পছন্দ করুন। এটা একটা এক আকার পরিবর্তে একটি আরো অনেক কিছু বিচিত্র ফাইল সিস্টেম বাস্তব্যবিদ্যা সব ফিট এর
infixed

1

একটি ফাইল হ'ল ডিস্কে লিখিত ডেটা। এই ডেটাটি তার ইনোড দ্বারা রেফারেন্স করা হয়, যার মধ্যে ফাইলের মধ্যে মেটাডেটা রয়েছে যা এই ফাইলটির দ্বারা ডিস্কের মধ্যে কী কী ব্লকগুলি ব্যবহার করা হয় তা অন্য জিনিসগুলির মধ্যে রয়েছে telling একটি হার্ড লিঙ্ক এই ফাইলটির ইনোড নম্বরকে নির্দেশ করে।

প্রযুক্তিগতভাবে, হ্যাঁ, আপনি একটি নতুন ফাইল তৈরি করছেন, তবে এই ফাইলটিতে থাকা সমস্ত ফাইল হ'ল এটির নাম উল্লেখ করা ফাইলের ইনোড নম্বর। এটিকে ইনোডের জন্য পয়েন্টার বা ফাইলের পয়েন্টার হিসাবে তৈরি করা ভাল মনে করা ভাল।


1

ফাইল সিস্টেমে প্রবেশ সম্পর্কিত ফাইলগুলি একটি বহুল ব্যবহৃত ধারণা।

সাধারণত এটির মধ্যে ডিরেক্টরি , নিয়মিত ফাইল (হার্ড লিঙ্ক) এবং সিম্বলিক লিঙ্ক (সফট লিঙ্ক) অন্তর্ভুক্ত থাকে। এবং এমনকি ডিভাইস এবং সকেট অন্তর্ভুক্ত থাকতে পারে।

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

ধরা যাক, আমি স্পর্শ দিয়ে একটি ফাইল তৈরি করি, তারপরে ইনোড সারণিতে একটি ইনোড এন্ট্রি তৈরি করা হবে। এবং আমি একটি হার্ড লিঙ্ক তৈরি করি, যার ফাইলের সাথে একই ইনোড নম্বর রয়েছে। সুতরাং আমি কি একটি নতুন ফাইল তৈরি করেছি? অথবা ফাইলটি কেবল একটি ইনোড হিসাবে সংজ্ঞায়িত করা হয়েছে?

যেহেতু প্রতীকী লিঙ্কটি সাধারণত ফাইল হিসাবে গণনা করা হয়, তাই একটি হার্ড লিঙ্কটি নিজেও একটি ফাইল হিসাবে গণ্য করা যায়। আপনি এটি শক্ত বা নরম লিঙ্ক নির্বিশেষে এটি একটি ফাইল বলতে পারেন।

ধারণাটি কিছুটা অস্পষ্ট, সুতরাং একটি আইওনড এন্ট্রি একটি ফাইল হ'ল এটিও ঠিক আছে, যদিও আপনি প্রকৃতপক্ষে ডেটা উল্লেখ করতে চাইতে পারেন।

আপনার সম্পর্কে পড়তে চাইবেন আপনি একটি সি ++ বা জাভা প্রোগ্রামার হন তাহলে এসটিডি :: ফাইলসিস্টেম :: FILE_TYPE , java.io.File এবং java.nio.file.Files

হার্ড লিঙ্ক এবং সফট লিঙ্কের মধ্যে পার্থক্য সম্পর্কে বিশদটি ইনফিক্সডের মন্তব্যে লিঙ্কটিতে পাওয়া যাবে।


1

প্রদত্ত নাম এবং "হার্ড লিঙ্ক" সহ একটি "ফাইল" এর মধ্যে পার্থক্য ইতিহাসের একটি। প্রদত্ত নামের একটি (নিয়মিত) ফাইলটি ক্রিয়েট সিস্টেম কল ব্যবহার করে তৈরি করা হয়, একটি লিঙ্ক সিস্টেম কল ব্যবহার করে একটি হার্ড লিঙ্ক তৈরি করা হয়।

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

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

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