در یونیکس ها همه چیز فایل است حتی دایرکتوری ها و دیوایس های سخت افزاری مانند هارد دیسک ها و ماوس و کی بورد. از دستور ls برای تعیین نوع یک فایل استفاده می شود که در خروجی آن علامت – نشان دهنده یک فایل معمولی مانند فایل های متنی و d نشان دهنده دایرکتوری و c نشان دهنده دیوایس های کاراکتری مانند کی بورد و b نشان دهنده دیوایس های بلاکی مانند هارد ها و l نشان دهنده لینک ها هستند. فایل ها دارای نامی هستند و درون دایرکتوری ها قرار دارند و خود دایرکتوری ها هم درون دایرکتوری های دیگری قرار دارند. ما برای دسترسی به یک فایل آنرا درون یک دایرکتوری با نامی ذخیره می کنیم ولی خود سیستم عامل برای دسترسی به یک فایل یا دایرکتوری از یک ساختار به نام inode یا index node استفاده می کند. هر فایل یا دایرکتوری دارای شماره ای است که به آن inode یا inode number می گویند و خود ionde ها در جدولی به نام inode table ذخیره می شوند.
اطلاعاتی که از هر فایل در ساختار inode مربوط به آن فایل ذخیره می شوند :
اشاره گری به آدرس محل فیزیکی ذخیره فایل
مالک فایل و گروه فایل
قوانین دسترسی به فایل
اندازه فایل
زمان اخرین دسترسی به فایل
زمان آخرین تغییر در فایل
زمان اخرین تغییر در inode فایل
در اصل در سیستم فایل خود فایل با inode مربوطش شناخته می شود و اگر ساختار inode خراب شود دیگر نمی توان به فایل دسترسی داشت چون سیستم عامل کاری به نام فایل ندارد و از روی شماره inode به ساختار inode فایل دسترسی پیدا می کند. چیزی که در inode مربوط به هر فایل ذخیره نمی شود نام فایل است. نام فایل بجای ذخیره در ساختار inode فایل در ساختار inode مربوط به دایرکتوری که فایل در آن ذخیره شده است ذخیره می شود. شکل زیر ساختار inode های مربوط به دایرکتوری و فایل را نشان می دهد.
شکل بالا ساختار inode مربوط به یک دایرکتوری را نشان می دهد که چیزی جز نام فایل ها و دایرکتوری ها و inode های مربوط به آنها نیست. در اولین ستون عدد inode مربوط به دایرکتوری 3470036 است. در ستونی که DOT نوشته شده و یک نقطه وجود دارد عدد inode همان 3470036 است و این بخاط این است که علامت تک نقطه نشان دهنده دایرکتوری جاری است. در فیلد پایینی DOT DOT و دو نقطه یعنی دایرکتوری والد که عدد inode برابر 3470017 است. بطور مثال وقتی دستور .. cd را می زنید که یعنی برگرد به دایرکتوری والد دیتور cd از عدد 3470017 برای تعیین دایرکتوری والد استفاده می کند. در فیلد های بعدی هم فایل ها و پوشه های دیگری هستند که inode های خوشان را دارند. برای نمایش عدد inode هر فایل یا دایرکتوری می توان از یکی از دستور های زیر استفاده کرد.
در خروجی دستور بالا اولین عدد هر خط inode مربوط به همان عدد است.
ودر خروجی دستور زیر اولین عدد inode دایرکتوری را نشان می دهد.
از دستور stat هم می توانید استفاده کنید که در خروجی اش خطی که inode رو نشان داده است.
اگر می خواهید inode مر بوط به هر یک از پارتیشن ها رو پیدا کنید از دستور زیر استفاده کنید.
می توانیم با داشتن inode یک فایل یا دایرکتوری آن فایل را پیدا کرد ( جستجو برای یافتن آن فایل) و یا به یک دایرکتوری با دستور cd رفت. اولین خط از دستور های زیر چگونگی پیدا کردن یک فایل توسط inode آن توسط دستور find را نشان می دهد و دومین خط چگونگی پیمایش به دیک دایرکتوری دیگر با داشتن inode آن دایرکتوری را نشان می دهد.
بطور مثال اولین خط از دستور های زیر توسط دستور find و جستجو در دایرکتوری home/ و توسط سوپیچ inum- که مخفف inode number است فایلی با inode=31419 را پیدا می کند و سپس فایل یافته شده را به سوپیچ exec- می فرستد و دستور rm را روی فایل یافته شده انجام می دهد که یعنی آنرا پاک می کند.
و دستور زیر با یافتن یک فایل با inode=8003 و ارسال آن به دستور cd وارد آن دایرکتوری می شود.
نتیجه گیری کلی اینکه :
همه چیز در یونیکس ها فایل هستند حتی دایرکتوری ها و دیوایس هایی مانند هارد ها و کی بورد ها
ساختار inode مربوط به یک فایل ساده با ساختار inode یک دایرکتوری و … فرق دارند چون ماهیت فایل ها با هم متفاوت است.
سیستم عامل از شماره inode ها برای دسترسی به یک فایل استفاده می کند.
آموزش های مرتبط :
سیستم فایل در یونیکس/ لینوکس – بخش اول
سیستم فایل در یونیکس/لینوکس – بخش دوم
سیستم فایل در یونیکس/بینوکس – بخش سوم
نویسنده نامی امیر
اطلاعاتی که از هر فایل در ساختار inode مربوط به آن فایل ذخیره می شوند :
اشاره گری به آدرس محل فیزیکی ذخیره فایل
مالک فایل و گروه فایل
قوانین دسترسی به فایل
اندازه فایل
زمان اخرین دسترسی به فایل
زمان آخرین تغییر در فایل
زمان اخرین تغییر در inode فایل
در اصل در سیستم فایل خود فایل با inode مربوطش شناخته می شود و اگر ساختار inode خراب شود دیگر نمی توان به فایل دسترسی داشت چون سیستم عامل کاری به نام فایل ندارد و از روی شماره inode به ساختار inode فایل دسترسی پیدا می کند. چیزی که در inode مربوط به هر فایل ذخیره نمی شود نام فایل است. نام فایل بجای ذخیره در ساختار inode فایل در ساختار inode مربوط به دایرکتوری که فایل در آن ذخیره شده است ذخیره می شود. شکل زیر ساختار inode های مربوط به دایرکتوری و فایل را نشان می دهد.
شکل بالا ساختار inode مربوط به یک دایرکتوری را نشان می دهد که چیزی جز نام فایل ها و دایرکتوری ها و inode های مربوط به آنها نیست. در اولین ستون عدد inode مربوط به دایرکتوری 3470036 است. در ستونی که DOT نوشته شده و یک نقطه وجود دارد عدد inode همان 3470036 است و این بخاط این است که علامت تک نقطه نشان دهنده دایرکتوری جاری است. در فیلد پایینی DOT DOT و دو نقطه یعنی دایرکتوری والد که عدد inode برابر 3470017 است. بطور مثال وقتی دستور .. cd را می زنید که یعنی برگرد به دایرکتوری والد دیتور cd از عدد 3470017 برای تعیین دایرکتوری والد استفاده می کند. در فیلد های بعدی هم فایل ها و پوشه های دیگری هستند که inode های خوشان را دارند. برای نمایش عدد inode هر فایل یا دایرکتوری می توان از یکی از دستور های زیر استفاده کرد.
کد PHP:
ls -ali FILE_NAME
ودر خروجی دستور زیر اولین عدد inode دایرکتوری را نشان می دهد.
کد PHP:
ls -dli DIR_NAME
از دستور stat هم می توانید استفاده کنید که در خروجی اش خطی که inode رو نشان داده است.
کد PHP:
stat FILE_NAME
stat DIR_NAME
کد PHP:
du -i
می توانیم با داشتن inode یک فایل یا دایرکتوری آن فایل را پیدا کرد ( جستجو برای یافتن آن فایل) و یا به یک دایرکتوری با دستور cd رفت. اولین خط از دستور های زیر چگونگی پیدا کردن یک فایل توسط inode آن توسط دستور find را نشان می دهد و دومین خط چگونگی پیمایش به دیک دایرکتوری دیگر با داشتن inode آن دایرکتوری را نشان می دهد.
کد PHP:
find DIR_NAME -inum INODE_NUMBER
(cd $(find -inum INODE_NUMBER
کد PHP:
;\ {} find /home -inum 31419 -exec rm -f
کد PHP:
(cd $(find -inum 8003
همه چیز در یونیکس ها فایل هستند حتی دایرکتوری ها و دیوایس هایی مانند هارد ها و کی بورد ها
ساختار inode مربوط به یک فایل ساده با ساختار inode یک دایرکتوری و … فرق دارند چون ماهیت فایل ها با هم متفاوت است.
سیستم عامل از شماره inode ها برای دسترسی به یک فایل استفاده می کند.
آموزش های مرتبط :
سیستم فایل در یونیکس/ لینوکس – بخش اول
سیستم فایل در یونیکس/لینوکس – بخش دوم
سیستم فایل در یونیکس/بینوکس – بخش سوم
نویسنده نامی امیر