ہر وہ چیز جو آپ نے لینکس میں آئوڈ کے بارے میں جاننا چاہتی تھی

لینکس فائل سسٹم انوڈس پر انحصار کرتا ہے۔ فائل سسٹم کی اندرونی کام کے ان اہم ٹکڑوں کو اکثر غلط فہمی میں ڈال دیا جاتا ہے۔ آئیے دیکھتے ہیں کہ وہ کیا ہیں اور وہ کیا کرتے ہیں۔

ایک فائل سسٹم کے عناصر

تعریف کے مطابق ، ایک فائل سسٹم کو فائلوں کو ذخیرہ کرنے کی ضرورت ہوتی ہے ، اور ان میں ڈائریکٹریاں بھی ہوتی ہیں۔ فائلوں کو ڈائریکٹریوں میں محفوظ کیا جاتا ہے ، اور ان ڈائریکٹریوں میں سب ڈائرکٹریاں ہو سکتی ہیں۔ کسی نہ کسی جگہ پر ، یہ ریکارڈ کرنا پڑتا ہے کہ فائل فائل کے اندر کہاں فائلیں ہیں ، وہ کیا کہتے ہیں ، کن اکاؤنٹس سے تعلق رکھتے ہیں ، کس اجازت سے ہیں اور بہت کچھ۔ اس معلومات کو میٹا ڈیٹا کہا جاتا ہے کیونکہ یہ وہ ڈیٹا ہے جو دوسرے ڈیٹا کو بیان کرتا ہے۔

لینکس ایکسٹ 4 فائل سسٹم میں ، انوڈ اور ڈائرکٹری ڈھانچے ایک ساتھ مل کر کام کرتے ہیں تاکہ انڈرپننگ فریم ورک فراہم کیا جاسکے جو ہر فائل اور ڈائرکٹری کے لئے تمام میٹا ڈیٹا کو اسٹور کرتا ہے۔ وہ میٹا ڈیٹا ہر کسی کے لئے دستیاب کرتے ہیں جس کی ضرورت ہوتی ہے ، چاہے وہ دانی ، صارف ایپلی کیشنز ، یا لینکس کی افادیت جیسے ، ls, جامد، اور df.

انوڈس اور فائل سسٹم کا سائز

اگرچہ یہ سچ ہے کہ وہاں ایک ڈھانچے کا جوڑا ہے ، ایک فائل سسٹم کو اس سے کہیں زیادہ کی ضرورت ہوتی ہے۔ ہر ڈھانچے میں ہزاروں اور ہزاروں ہیں۔ ہر فائل اور ڈائرکٹری کو ایک انوڈ کی ضرورت ہوتی ہے ، اور کیونکہ ہر فائل ایک ڈائرکٹری میں ہوتی ہے ، لہذا ہر فائل کو ڈائریکٹری ڈھانچے کی بھی ضرورت ہوتی ہے۔ ڈائریکٹری ڈھانچے کو ڈائریکٹری اندراجات ، یا "دندان سازی" بھی کہا جاتا ہے۔

ہر آئوڈ میں ایک انوڈ نمبر ہوتا ہے ، جو فائل سسٹم کے اندر منفرد ہوتا ہے۔ ایک ہی سے زیادہ فائل سسٹم میں ایک ہی انوڈ نمبر ظاہر ہوسکتا ہے۔ تاہم ، فائل سسٹم ID اور انوڈ نمبر ایک منفرد شناخت کار بنانے کے لئے مل جاتے ہیں ، قطع نظر اس سے قطع نظر کہ آپ کے لینکس سسٹم پر کتنے فائل سسٹم نصب ہیں۔

یاد رکھیں ، لینکس میں ، آپ ہارڈ ڈرائیو یا پارٹیشن نہیں بڑھاتے ہیں۔ آپ تقسیم فائل پر موجود فائل سسٹم کو ماؤنٹ کرتے ہیں ، لہذا اس کو سمجھے بغیر متعدد فائل سسٹم رکھنا آسان ہے۔ اگر آپ کے پاس ایک ہی ڈرائیو میں ایک سے زیادہ ہارڈ ڈرائیوز یا پارٹیشنز ہیں ، تو آپ کے پاس ایک سے زیادہ فائل سسٹم موجود ہیں۔ وہ ایک ہی قسم کے ہوسکتے ہیں ، مثلا— تمام ایکسٹ 4 ، لیکن وہ اب بھی الگ فائل سسٹم ہوں گے۔

تمام آئوڈ ایک میز میں رکھے گئے ہیں۔ ایک انوڈ نمبر کا استعمال کرتے ہوئے ، فائل سسٹم آسانی سے آفسیٹ کو انوڈ ٹیبل میں حساب دیتا ہے جہاں وہ انوڈ واقع ہے۔ آپ دیکھ سکتے ہیں کہ انوڈ میں "i" کیوں انڈیکس کا مطلب ہے۔

انویر نمبر پر مشتمل متغیر کو منبع کوڈ میں 32 بٹ ، بغیر دستخط کیے ہوئے لمبے عدد کا اعلان کیا گیا ہے۔ اس کا مطلب ہے کہ انوڈ نمبر ایک عددی قیمت ہے جس کی زیادہ سے زیادہ سائز 2 size 32 ہے ، جو 4،294،967،295 — اچھی طرح سے 4 بلین انوڈس کا حساب لگاتی ہے۔

یہ نظریاتی زیادہ سے زیادہ ہے۔ عملی طور پر ، ایکسٹ 4 فائل سسٹم میں انوڈوں کی تعداد کا تعین اس وقت ہوتا ہے جب فائل سسٹم کی صلاحیت کے 16 کلوبائٹ فی ایک انوڈ کے پہلے سے طے شدہ تناسب سے فائل سسٹم تشکیل دیا جاتا ہے۔ جب فائل سسٹم استعمال میں ہو تو ڈائرکٹری ڈھانچے اس وقت تیار ہوجاتی ہیں ، کیوں کہ فائل سسٹم کے اندر فائلیں اور ڈائریکٹریز تخلیق ہوتی ہیں۔

آپ کے کمپیوٹر میں فائل سسٹم میں کتنے انوڈس ہیں یہ دیکھنے کے لئے ایک کمانڈ استعمال ہوسکتی ہے۔ -میں (انوڈس) کا اختیار df کمانڈ اس کو ہدایت دیتا ہے کہ وہ اپنی پیداوار کو آئوڈوں کی تعداد میں ظاہر کرے۔

ہم پہلے ہارڈ ڈرائیو پر پہلے پارٹیشن پر فائل سسٹم کو دیکھنے جارہے ہیں ، لہذا ہم درج ذیل کو ٹائپ کرتے ہیں۔

df -i / dev / sda1

آؤٹ پٹ ہمیں دیتا ہے:

  • فائل سسٹم: فائل سسٹم کی اطلاع دی جارہی ہے۔
  • انوڈس: اس فائل سسٹم میں کل انوڈوں کی تعداد۔
  • میں نے استعمال کیا: استعمال میں انوڈوں کی تعداد۔
  • IFree: استعمال کے لئے دستیاب باقی آئوڈوں کی تعداد۔
  • میں استعمال٪: استعمال شدہ آئوڈس کی فیصد۔
  • لگا ہوا: اس فائل سسٹم کے لئے ماؤنٹ پوائنٹ۔

ہم نے اس فائل سسٹم میں 10 فیصد انوڈ استعمال کیے ہیں۔ فائلیں ڈسک بلاکس میں ہارڈ ڈرائیو پر محفوظ ہوتی ہیں۔ ہر انوڈ ڈسک بلاکس کی طرف اشارہ کرتا ہے جو فائل کی فہرست میں ان کی نمائندگی کرتا ہے۔ اگر آپ کے پاس لاکھوں چھوٹی فائلیں ہیں تو ، آپ کو ہارڈ ڈرائیو کی جگہ ختم ہونے سے پہلے آپ انوڈ آؤٹ کرسکتے ہیں۔ تاہم ، اس میں چلنا ایک بہت ہی مشکل مسئلہ ہے۔

ماضی میں ، کچھ میل سرورز جو ای میل پیغامات کو مجرد فائلوں کے طور پر ذخیرہ کرتے ہیں (جس کی وجہ سے تیزی سے چھوٹی فائلوں کے بڑے ذخیرے ہوتے ہیں) یہ مسئلہ پیدا ہوا تھا۔ جب ان ایپلی کیشنز نے اپنی پیٹھ کے اعدادوشمار کو ڈیٹا بیس میں تبدیل کردیا تو ، اس سے یہ مسئلہ حل ہوگیا۔ اوسط ہوم سسٹم انوڈز سے باہر نہیں چل پائے گا ، جس کی وجہ یہ ہے کہ ایکسٹ 4 فائل سسٹم کے ساتھ ، آپ فائل سسٹم کو دوبارہ انسٹال کیے بغیر مزید انوڈ شامل نہیں کرسکتے ہیں۔

اپنے فائل سسٹم پر ڈسک بلاکس کی جسامت کو دیکھنے کے ل you ، آپ اسے استعمال کرسکتے ہیں بلاک دیو کے ساتھ کمانڈ --getbsz (بلاک سائز حاصل کریں) اختیار:

sudo blockdev --getbsz / dev / sda

بلاک کا سائز 4096 بائٹ ہے۔

آئیے استعمال کریں -بی (بلاک سائز) 4096 بائٹ کے بلاک سائز کی وضاحت کرنے اور ڈسک کے باقاعدگی سے استعمال کو جانچنے کا آپشن:

df -B 4096 / dev / sda1

یہ آؤٹ پٹ ہمیں دکھاتا ہے:

  • فائل سسٹم: فائل سسٹم جس پر ہم اطلاع دے رہے ہیں۔
  • 4K- بلاکس: اس فائل سسٹم میں کل 4 کلوب بلاکس کی تعداد۔
  • استعمال کیا جاتا ہے: کتنے 4K بلاکس استعمال میں ہیں۔
  • دستیاب: باقی 4 KB بلاکس کی تعداد جو استعمال کے لئے دستیاب ہیں۔
  • ٪ استعمال کریں: استعمال کیا گیا ہے کہ 4 KB بلاکس کی فیصد.
  • لگا ہوا: اس فائل سسٹم کے لئے ماؤنٹ پوائنٹ۔

ہماری مثال میں ، فائل اسٹوریج (اور انوڈس اور ڈائرکٹری ڈھانچے کی اسٹوریج) نے اس فائل سسٹم میں 28 فیصد جگہ استعمال کی ہے ، اس میں 10 فیصد انوڈس کی لاگت آئے گی ، لہذا ہم اچھی حالت میں ہیں۔

انوڈ میٹا ڈیٹا

کسی فائل کی انوڈ نمبر دیکھنے کے ل we ، ہم استعمال کرسکتے ہیں ls کے ساتہ -میں (inode) آپشن:

ls -i geek.txt

اس فائل کے لئے انوڈ نمبر 1441801 ہے ، لہذا یہ انوڈ اس فائل کے لئے میٹا ڈیٹا رکھتا ہے اور ، روایتی طور پر ، ڈسک بلاکس کی طرف اشارہ کرتا ہے جہاں فائل ہارڈ ڈرائیو پر رہتی ہے۔ اگر فائل بکھری ہوئی ہے ، بہت بڑی ہے ، یا دونوں ، کچھ انلاک پوائنٹس کو روکنے کے لئے جن میں سے کچھ بلاکس دوسرے ڈسک بلاکس میں مزید پوائنٹر رکھتے ہیں۔ اور ان میں سے کچھ دوسرے ڈسک بلاکس میں ڈسک بلاکس کے ایک اور سیٹ کی طرف اشارہ بھی ہوسکتا ہے۔ اس سے انوڈ کے مسئلے پر قابو پایا گیا جو ایک مقررہ سائز ہے اور ڈسک بلاکس تک محدود تعداد میں پوائنٹر رکھنے میں کامیاب ہے۔

اس طریقہ کار کو ایک نئی اسکیم نے مسترد کردیا جس میں "توسیع" کا استعمال کیا گیا ہے۔ ان فائلوں کو ذخیرہ کرنے کے ل used استعمال ہونے والے ہر بلاک کے سیٹ اور اسٹارٹ بلاک کو ریکارڈ کرتے ہیں۔ اگر فائل انگرگمنٹڈ ہے تو آپ کو صرف پہلے بلاک اور فائل کی لمبائی کو محفوظ کرنا ہوگا۔ اگر فائل بکھری ہوئی ہے تو ، آپ کو فائل کے ہر حصے کا پہلا اور آخری بلاک محفوظ کرنا ہوگا۔ یہ طریقہ (ظاہر ہے) زیادہ موثر ہے۔

اگر آپ یہ دیکھنا چاہتے ہیں کہ آیا آپ کا فائل سسٹم ڈسک بلاک پوائنٹر یا ایکسٹینٹ استعمال کرتا ہے تو ، آپ کسی آئوڈ کے اندر نظر ڈال سکتے ہیں۔ ایسا کرنے کے لئے ، ہم استعمال کریں گے ڈیبگس کے ساتھ کمانڈ -R (درخواست) کا اختیار ، اور اسے دلچسپی کی فائل کا انوڈ پاس کریں۔ یہ پوچھتا ہےڈیبگس انوڈ کے مندرجات کو ظاہر کرنے کے لئے اس کی داخلی "اسٹیٹ" کمانڈ استعمال کریں۔ چونکہ فائل فائل میں صرف انوڈ نمبر الگ ہوتے ہیں ، لہذا ہمیں یہ بھی بتانا ہوگا ڈیبگس فائل سسٹم جس پر انوڈ رہتا ہے۔

یہاں یہ ہے کہ یہ مثال کس طرح کی ہوگی۔

sudo debugfs -R "stat" / dev / sda1

جیسا کہ ذیل میں دکھایا گیا ہے ، ڈیبگس کمانڈ انوڈ سے معلومات نکالتی ہے اور اسے ہمارے پاس پیش کرتی ہے کم:

ہمیں مندرجہ ذیل معلومات دکھائی گئیں۔

  • انوڈ: ہم انوڈ کی تعداد جس کو ہم دیکھ رہے ہیں۔
  • ٹائپ کریں: یہ ایک باقاعدہ فائل ہے نہ کہ ڈائریکٹری یا علامتی لنک۔
  • وضع: اکتوبر میں فائل کی اجازت.
  • جھنڈے: اشارے جو مختلف خصوصیات یا فعالیت کی نمائندگی کرتے ہیں۔ 0x80000 "تجاوزات" پرچم ہے (اس کے نیچے اس پر مزید)
  • نسل: ایک نیٹ ورک فائل سسٹم (این ایف ایس) اس کا استعمال اس وقت کرتا ہے جب کوئی ریموٹ فائل سسٹم تک کسی نیٹ ورک کنکشن پر اس طرح تک رسائی حاصل کرتا ہے گویا وہ مقامی مشین پر لگا ہوا ہے۔ انوڈ اور جنریشن نمبر فائل ہینڈل کی ایک شکل کے طور پر استعمال ہوتے ہیں۔
  • ورژن: انوڈ ورژن۔
  • صارف: فائل کا مالک۔
  • گروپ: فائل کا گروپ مالک۔
  • پروجیکٹ: ہمیشہ صفر ہونا چاہئے۔
  • سائز: فائل کا سائز۔
  • فائل ACL: فائل تک رسائی کنٹرول لسٹ۔ یہ آپ کو ان لوگوں تک کنٹرول حاصل کرنے کی اجازت دینے کے لئے ڈیزائن کیے گئے تھے جو مالک گروپ میں شامل نہیں ہیں۔
  • لنکس: فائل کے لئے سخت روابط کی تعداد۔
  • بلاک کاؤنٹی: اس فائل کے لئے مختص کردہ ہارڈ ڈرائیو اسپیس کی مقدار ، 512 بائٹ حصوں میں دی گئی ہے۔ ہماری فائل ان میں سے آٹھ مختص کی گئی ہے ، جو 4،096 بائٹس ہے۔ تو ، ہماری 98 بائٹ فائل ایک ہی 4،096 بائٹ ڈسک بلاک کے اندر بیٹھتی ہے۔
  • ٹکڑا: یہ فائل بکھر نہیں ہے۔ (یہ متروک پرچم ہے۔)
  • CTT: جس وقت فائل بنائی گئی تھی۔
  • ایک وقت: اس وقت جب اس فائل تک آخری بار رسائی ہوئی تھی۔
  • مائٹائم: اس فائل میں آخری بار ترمیم کی گئی۔
  • کرائم ٹائم: جس وقت فائل بنائی گئی تھی۔
  • اضافی انوڈ فیلڈز کا سائز: ایکسٹ 4 فائل سسٹم نے فارمیٹ ٹائم میں ایک بڑے آن ڈسک انوڈ کو مختص کرنے کی صلاحیت متعارف کرائی۔ یہ قدر انوڈ استعمال کرنے والے اضافی بائٹس کی تعداد ہے۔ اس اضافی جگہ کا استعمال نئی دانا کے لئے مستقبل کی ضروریات کو ایڈجسٹ کرنے کے لئے یا توسیع شدہ خصوصیات کو محفوظ کرنے کے لئے بھی کیا جاسکتا ہے۔
  • انوڈ چیکسم: اس آئوڈ کے لئے ایک چیکسم ، جس سے یہ معلوم کرنا ممکن ہوجاتا ہے کہ آیا انوڈ خراب ہوا ہے۔
  • ایکسٹینٹس: اگر ایکسٹینٹ استعمال کیے جارہے ہیں (ایکسٹ 4 پر ، وہ بطور ڈیفالٹ) ، فائلوں کے ڈسک بلاک کے استعمال سے متعلق میٹا ڈیٹا کی دو تعداد ہوتی ہیں جو ایک بکھری فائل کے ہر حصے کے آغاز اور اختتام بلاکس کی نشاندہی کرتی ہیں۔ فائل کے ہر حصے کے ذریعہ ہر ڈسک بلاک کو ذخیرہ کرنے سے زیادہ موثر ہے۔ ہمارے پاس ایک حد ہے کیونکہ ہماری چھوٹی فائل اس بلاک آفسیٹ پر ایک ڈسک بلاک پر بیٹھتی ہے۔

فائل کا نام کہاں ہے؟

اب ہمارے پاس فائل کے بارے میں بہت سی معلومات ہیں ، لیکن ، جیسا کہ آپ نے محسوس کیا ہوگا ، ہمیں فائل کا نام نہیں ملا۔ یہ وہ جگہ ہے جہاں ڈائریکٹری کا ڈھانچہ کام میں آتا ہے۔ لینکس میں ، کسی فائل کی طرح ، ایک ڈائرکٹری میں ایک انوڈ ہوتا ہے۔ فائل ڈاٹا پر مشتمل ڈسک بلاکس کی طرف اشارہ کرنے کے بجائے ، اگرچہ ، ایک ڈائرکٹری انوڈ ڈسک بلاکس کی طرف اشارہ کرتا ہے جس میں ڈائریکٹری ڈھانچے ہوتے ہیں۔

کسی آئوڈ کے مقابلے میں ، ایک ڈائرکٹری ڈھانچے میں کسی فائل کے بارے میں محدود معلومات شامل ہوتی ہیں۔ اس میں صرف فائل کا انوڈ نمبر ، نام اور نام کی لمبائی ہوتی ہے۔

انوڈ اور ڈائرکٹری ڈھانچہ میں ہر وہ چیز شامل ہوتی ہے جسے آپ (یا ایپلیکیشن) کسی فائل یا ڈائرکٹری کے بارے میں جاننے کے لئے درکار ہوتے ہیں۔ ڈائریکٹری ڈھانچہ ڈائریکٹری ڈسک بلاک میں ہے ، لہذا ہم جانتے ہیں کہ فائل جس ڈائریکٹری میں ہے وہ ہے۔ ڈائرکٹری ڈھانچہ ہمیں فائل کا نام اور انوڈ نمبر دیتا ہے۔ انوڈ فائل کے بارے میں ہمیں باقی سب کچھ بتاتا ہے ، بشمول ٹائم اسٹیمپس ، اجازتیں ، اور فائل سسٹم میں فائل کا ڈیٹا کہاں تلاش کرنا ہے۔

ڈائرکٹری انوڈس

آپ کسی ڈائرکٹری کا انوڈ نمبر اتنی آسانی سے دیکھ سکتے ہیں جتنا آپ انہیں فائلوں کے ل for دیکھ سکتے ہیں۔

مندرجہ ذیل مثال میں ، ہم استعمال کریں گے ls کے ساتہ -l (لمبی شکل) ، -میں (inode) ، اور -ڈی (ڈائرکٹری) کے اختیارات ، اور دیکھیں کام ڈائریکٹری:

LS -lid کام /

کیونکہ ہم نے استعمال کیا -ڈی (ڈائرکٹری) آپشن ،ls ڈائریکٹری میں ہی اس کے مندرجات کی رپورٹ نہیں ہے۔ اس ڈائریکٹری کا آئوڈ 1443016 ہے۔

اس کے لئے اس کو دہرانا گھر ڈائرکٹری ، ہم مندرجہ ذیل ٹائپ کرتے ہیں:

ls -lid

کے لئے inode گھر ڈائریکٹری 1447510 ہے ، اور کام ڈائریکٹری ہوم ڈائرکٹری میں ہے۔ اب ، کے مندرجات پر نظر ڈالیں کام ڈائریکٹری کے بجائے-ڈی (ڈائرکٹری) آپشن ، ہم استعمال کریں گے (تمام) آپشن۔ یہ ہمیں ڈائریکٹری اندراجات دکھائے گا جو عام طور پر پوشیدہ ہیں۔

ہم درج ذیل کو ٹائپ کرتے ہیں:

LS -Lia کام /

کیونکہ ہم نے استعمال کیا (تمام) آپشن ، سنگل (.) اور ڈبل ڈاٹ (..) اندراجات ظاہر ہوتے ہیں۔ یہ اندراجات خود ڈائریکٹری (سنگل ڈاٹ) ، اور اس کی بنیادی ڈائرکٹری (ڈبل ڈاٹ.) کی نمائندگی کرتی ہیں۔

اگر آپ واحد ڈاٹ اندراج کے لئے انوڈ نمبر دیکھیں تو آپ کو معلوم ہوگا کہ یہ 1443016 ہے — جب ہم نے انوڈ نمبر دریافت کیا تو ہمیں وہی انوڈ نمبر ملا کام ڈائریکٹری نیز ، ڈبل ڈاٹ اندراج کے لئے انوڈ نمبر بھی اسی کے لئے انوڈ نمبر کے لئے ہے گھر ڈائریکٹری

اسی لئے آپ اسے استعمال کرسکتے ہیں سی ڈی .. ڈائریکٹری ٹری میں کسی سطح کو منتقل کرنے کا حکم۔ اسی طرح ، جب آپ کسی درخواست یا اسکرپٹ کے نام سے پہلے ہوتے ہیں./، آپ ایپلیکیشن یا اسکرپٹ کو کہاں سے لانچ کریں اس شیل کو بتائیں۔

انوڈس اور روابط

جیسا کہ ہم نے احاطہ کیا ہے ، فائل سسٹم میں ایک اچھی طرح سے تشکیل پذیر اور قابل رسائی فائل کے ل three تین اجزاء کی ضرورت ہے: فائل ، ڈائرکٹری ڈھانچہ ، اور انوڈ۔ فائل ہارڈ ڈرائیو پر موجود ڈیٹا ہے ، ڈائرکٹری ڈھانچے میں فائل کا نام اور اس کے انوڈ نمبر ہوتا ہے ، اور انوڈ فائل کے لئے تمام میٹا ڈیٹا پر مشتمل ہوتا ہے۔

علامتی لنکس فائل سسٹم اندراجات ہیں جو فائلوں کی طرح نظر آتی ہیں ، لیکن وہ واقعی میں شارٹ کٹ ہیں جو کسی موجودہ فائل یا ڈائرکٹری کی طرف اشارہ کرتے ہیں۔ آئیے دیکھتے ہیں کہ وہ اس کو کس طرح منظم کرتے ہیں ، اور یہ حاصل کرنے کے لئے تینوں عناصر کس طرح استعمال ہوتے ہیں۔

ہم کہتے ہیں کہ ہمیں ایک ڈائرکٹری ملی ہے جس میں دو فائلیں ہیں: ایک اسکرپٹ ہے ، اور دوسری ایپلی کیشن ہے ، جیسا کہ ذیل میں دکھایا گیا ہے۔

ہم ln کمانڈ اور استعمال کرسکتے ہیں -s (علامتی) اسکرپٹ فائل سے نرم لنک بنانے کا اختیار ، جیسے:

ls -s my_script geek.sh

ہم نے اس کا لنک تیار کیا ہے my_script.sh کہا جاتا ہے geek.sh. ہم درج ذیل کو ٹائپ کرسکتے ہیں اور استعمال کرسکتے ہیںls دونوں اسکرپٹ فائلوں کو دیکھنے کے لئے:

ls -li * .sh

کے لئے اندراج geek.sh نیلے رنگ میں ظاہر ہوتا ہے اجازت والے جھنڈوں کا پہلا کردار لنک کے لئے ایک "ایل" ہے ، اور-> اس کی طرف اشارہ کرتا ہے my_script.sh . یہ سب اس بات کی نشاندہی کرتا ہے geek.sh ایک کڑی ہے۔

جیسا کہ آپ کی توقع ہے ، دونوں اسکرپٹ فائلوں میں مختلف انوڈ نمبر ہیں۔ اس سے زیادہ حیرت انگیز بات ، اگرچہ ، یہ نرم ربط ہے ، geek.sh، کے پاس اصل اسکرپٹ فائل جیسی صارف کی اجازت نہیں ہے۔ اصل میں ، کے لئے اجازتgeek.sh بہت زیادہ آزاد خیال ہیں — تمام صارفین کو مکمل اجازت حاصل ہے۔

کے لئے ڈائریکٹری ڈھانچہ geek.sh لنک کا نام اور اس کے آئوٹڈ پر مشتمل ہے۔ جب آپ لنک استعمال کرنے کی کوشش کرتے ہیں تو ، اس کے آئوڈ کا حوالہ دیا جاتا ہے ، بالکل اسی طرح فائل کی طرح۔ لنک انوڈ ڈسک بلاک کی طرف اشارہ کرے گا ، لیکن فائل کے مواد کا ڈیٹا رکھنے کی بجائے ، ڈسک بلاک اصل فائل کا نام رکھتا ہے۔ فائل سسٹم اصل فائل پر ری ڈائریکٹ ہوتا ہے۔

ہم اصل فائل کو حذف کردیں گے ، اور دیکھیں گے کہ جب مندرجات کے مندرجات کو دیکھنے کے لئے ہم مندرجہ ذیل ٹائپ کرتے ہیں تو کیا ہوتا ہےgeek.sh:

rm my_script.sh
بلی geek.sh

علامتی لنک ٹوٹ گیا ہے ، اور ری ڈائریکٹ ناکام ہوجاتا ہے۔

اب ہم ایپلی کیشن فائل سے سخت لنک بنانے کیلئے درج ذیل کو ٹائپ کریں:

LN خصوصی ایپ geek-app

ان دو فائلوں کے آئوڈ کو دیکھنے کے ل we ، ہم درج ذیل کو ٹائپ کرتے ہیں۔

LS -li

دونوں باقاعدہ فائلوں کی طرح نظر آتے ہیں۔ کے بارے میں کچھ نہیں geek-app اشارہ کرتا ہے کہ جس طرح سے یہ ایک لنک ہے ls کے لئے لسٹنگ geek.sh کیا پلس ،geek-app اصل فائل جیسی صارف کی اجازت ہے۔ تاہم ، حیرت کی بات یہ ہے کہ دونوں درخواستوں کا ایک ہی انوڈ نمبر ہے: 1441797۔

کے لئے ڈائریکٹری اندراج geek-app "geek-app" اور ایک inode نمبر پر مشتمل ہے ، لیکن یہ اصل فائل کے انوڈ نمبر کی طرح ہے۔ تو ، ہمارے پاس دو فائل سسٹم اندراجات ہیں جن میں مختلف نام ہیں جو دونوں ایک ہی آئوڈ کی طرف اشارہ کرتے ہیں۔ در حقیقت ، آئٹمز کی تعداد میں ایک ہی آئوڈ کی طرف اشارہ کیا جاسکتا ہے۔

ہم درج ذیل کو ٹائپ کریں گے اور اسے استعمال کریں گے جامد ہدف کی فائل کو دیکھنے کے لئے پروگرام:

اسٹیٹ خصوصی ایپ

ہم دیکھتے ہیں کہ دو سخت روابط اس فائل کی طرف اشارہ کرتے ہیں۔ یہ آئوڈ میں محفوظ ہے۔

مندرجہ ذیل مثال میں ، ہم اصل فائل کو حذف کرتے ہیں اور لنک کو خفیہ ، محفوظ پاس ورڈ کے ساتھ استعمال کرنے کی کوشش کرتے ہیں:

rm خصوصی ایپ
./geek-app correcthorsebatterystaple

حیرت کی بات یہ ہے کہ درخواست توقع کے مطابق چلتی ہے ، لیکن کیسے؟ یہ کام کرتا ہے کیونکہ ، جب آپ کسی فائل کو حذف کرتے ہیں تو ، انوڈ کو دوبارہ استعمال کرنے کے لئے آزاد ہے۔ ڈائرکٹری ڈھانچہ کو صفر کی ایک انوڈ نمبر ہونے کی حیثیت سے نشان زد کیا گیا ہے ، اور اس جگہ پر ڈسک بلاکس کسی اور فائل کو محفوظ کرنے کے لئے دستیاب ہیں۔

اگر انوڈ سے سخت روابط کی تعداد ایک سے زیادہ ہے ، تاہم ، ہارڈ لنک کی گنتی ایک ایک سے کم کردی گئی ہے ، اور حذف شدہ فائل کی ڈائرکٹری ڈھانچے کی انوڈ نمبر صفر پر سیٹ کردی گئی ہے۔ ہارڈ ڈرائیو اور انوڈ میں فائل کے مندرجات ابھی بھی موجود ہارڈ لنکس پر دستیاب ہیں۔

ہم مندرجہ ذیل ٹائپ کریں گے اور ایک بار پھر اسٹیٹ استعمال کریں گے geek-app:

اسٹیٹ جیک-ایپ

یہ تفصیلات اسی پچھلے آئینڈ (1441797) سے کھینچی گئیں جامد کمانڈ. لنک گنتی میں ایک ایک کمی کردی گئی۔

کیونکہ اگر ہم حذف کردیں تو ہم اس انوڈ کے ایک سخت لنک سے نیچے ہیںgeek-app، یہ واقعی فائل کو حذف کردے گا۔ فائل سسٹم انوڈ کو آزاد کر دے گا اور ڈائریکٹری ڈھانچے کو صفر کے انوڈ کے ساتھ نشان زد کرے گا۔ اس کے بعد ایک نئی فائل ہارڈ ڈرائیو میں ڈیٹا اسٹوریج کو اوور رائٹ کر سکتی ہے۔

متعلقہ:لینکس پر اسٹیٹ کمانڈ کا استعمال کیسے کریں

انوڈ اوور ہیڈس

یہ صاف ستھرا نظام ہے ، لیکن وہاں ہیڈ ہیڈز ہیں۔ فائل کو پڑھنے کے ل file ، فائل سسٹم کو یہ سب کچھ کرنا پڑتا ہے:

  • صحیح ڈائرکٹری ڈھانچہ تلاش کریں
  • انوڈ نمبر پڑھیں
  • صحیح انوڈ تلاش کریں
  • انوڈ کی معلومات پڑھیں
  • یا تو انوڈ لنکس یا متعلقہ ڈسک بلاکس کی حدود پر عمل کریں
  • فائل کا ڈیٹا پڑھیں

اگر اعداد و شمار غیر متزلزل ہوں تو پھر تھوڑا سا کودنا ضروری ہے۔

جس کام کے لئے ہونا ہے اس کا تصور کریںls بہت ساری فائلوں کی ایک طویل فارمیٹ فائل لسٹنگ انجام دینے کے لئے۔ آگے پیچھے بہت ساری چیزیں ہیں ls معلومات حاصل کرنے کے ل it اسے اپنی پیداوار پیدا کرنے کی ضرورت ہے۔

یقینا، ، فائل سسٹم تک رسائی میں تیزی لانا ہے کیوں لینکس ممکن حد تک زیادہ سے زیادہ مقدمہ فائل کیچنگ کرنے کی کوشش کرتا ہے۔ اس سے بہت مدد ملتی ہے ، لیکن بعض اوقات - جیسے کسی فائل سسٹم کی طرح ، اوور ہیڈز واضح ہوسکتے ہیں۔

اب آپ کو پتہ چل جائے گا کہ کیوں۔


$config[zx-auto] not found$config[zx-overlay] not found