درک کردن ساختار فایل Inode در Linux &unix

درک کردن ساختار فایل Inode درLinux &unix

inode یک مفهوم پایه ای در ساختار فایل linux & unix هست . هر موضوعی در ساختار فایل ها به وسیله inode ها نمایش داده می شود.
اما این موضوع ها چه هستند ؟؟؟؟؟؟؟؟!!!!!
بطور کلی هر فایل در linux & unix از این خصوصیت ها پیروی می‌کند .

=> File type (executable, block special etc)
=> Permissions (read, write etc)
=> Owner
=> Group
=> File Size
=> File acces, عوض کردن و تغیر دادن زمان تولید

نکته : بیاد داشته باشید که linux & unix هیچگاه فایل ها را در زمان تولید ذخیره نمی کنند .

=> File deletion time
=> Number of links (soft/hard)
=> Extended attribute such as append only or no one can delete file including root user
=> Access Control List (ACLs)

تمام این اطلاعات ها در inode ذخیره می شوند .بطور کلی inode فایل ها و صفات ان ها را تشخیص می دهد . هر inode به وسیله یک inode number یکتا که در داخل فایل سیستم نوشته شده شناسایی می شود . هم چنین inode به وسیله شاخص عددی شناخته می شوند .

تعریف inode :
inode ساختمان داده ای هست که بطور مرسوم فایل سیستمی به سبک unix دارد , (unix-style) . مثل UFS یا ext3 . . .
Inode اطلات اساسی را در باره قوانین فایل ها و دایرکتوری ها ویا بقیه موضوعات فایل سیستم ذخیره می کند .

inode number فایل ها را چگونه ببینیم؟
با استفاده از دستور ls -i  می‌توان inode number فایل ها را دید.

$ ls -i /etc/passwd

نمونه خروجی

32820 /etc/passwd

برای بدست اوردن inode number و دیگر صفات مرتبط با آن، می توانید از دستور stat استفاده کنید.

$ stat /etc/passwd

خروجی

File: `/etc/passwd’
Size: 1988 Blocks: 8 IO Block: 4096 regular file
Device: 341h/833d Inode: 32820 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2005-11-10 01:26:01.000000000 +0530
Modify: 2005-10-27 13:26:56.000000000 +0530
Change: 2005-10-27 13:26:56.000000000 +0530

کاربرد inode :

دستورات زیادی به وسیله مدیران سیستم در سیتم عامل های linux & unix استفاده می شود . اغلب inode number ها هستند که یک فایل را تعیین می کنند.اجازه بدید که کاربردی از استفاده inode رو با هم ببینیم . دستورات زیر رو اجرا کنید .

$ cd /tmp
$ touch \”la*
$ ls -l

حالا سعی کنید که فایل “la* رو پاک کنید .
شما نمی توانید  فایل هایی را که با کنترل کاراکتر ها ساخته شده اند را پاک کنید . این فایل ها یا کاراکترهای خاصی مثل ?, * ^ و غیره نمی توانند به وسیله کیبرد اعمال شوند . برای پاک کردن این ها باید از inode number بهره ببرید .

دیدگاه‌ها

8 پاسخ به “درک کردن ساختار فایل Inode در Linux &unix”

  1. arastoo.s نیم‌رخ
    arastoo.s

    ههههههه
    خودم برای خودم نظر می دم به هر هال این اولین پست من بود امید وارم خوشتون بیاد

    ==========
    WhiteCrow1

  2. کامران نیم‌رخ
    کامران

    منبع جامع و خوبی در رابطه با ساختاز Inode ها می تونید معرفی کنید؟

  3. arastoo.s نیم‌رخ
    arastoo.s

    کامران جان سلام
    این کتاب می تونه مرجع خوبی برات باشه
    Wiley _ Unix Filesystems – Evolution, design and implementation

  4. erghezi نیم‌رخ

    آقا من اون پارگراف آخر رو نفهمیدم! من این فایل رو ساختم خیلی راحتم پاک کردمش:)

    کدوم فایلا رو نمیشه پاک کرد!؟

    1. پویان نیم‌رخ

      فکر کنم منظورش اسپیشال کارکتر ها هستش که نمی شه به راحتی با rm پاک کرد
      مثالش فاصله هایی که بین الفبا در یک کلمه وجود دارند ولی دیده نمی شوند.ولی با سک خورده گوگل آدم دستش میاد :)

  5. saeedgnu نیم‌رخ
    saeedgnu

    سلام آرش جان و نوید جان
    مطلب خوبی بود. دستت درد نکنه
    ولی یکی دو تا اشتباه داشت. توی بند آخر:
    ۱- «کنترل کاراکتر» نه. «کاراکتر کنترلی» درسته.
    ۲- این مطلب «این فایل ها یا کاراکترهای خاصی مثل ?, * ^ و غیره نمی توانند به وسیله کیبرد اعمال شوند . برای پاک کردن این ها باید از inode number بهره ببرید .» اشتباهه. میشه با single quote این کاراکترهای کنترلی رو غیر فعال کرد (غیر از back slash که اولویت‌ش از همه بیشتره) پس کافیه توی هر دستوری (مثلاً دستور rm) اسم فایل رو داخل single quote بذاریم.

    1. erghezi نیم‌رخ

      سلام. منم خودم فهمیدم یه جای کار می لنگه:) منتها هنوز درستش رو متوجه نشدم. ببین ظاهرا تو لینوکس یک سری اسامی رو نمیشه ایجاد کرد. مثل چی؟ شما سعی کن یه فولدر مشابه این اسم بسازی: 10/11/2006

      پیغام خطایی که می گیریم اینه:
      Sorry, could not rename “untitled folder” to “10/11/2006”: Slashes are not allowed in filenames
      اصلا اجازه به کار بردن اسلش رو نداریم!‌
      حالا من متوجه نشدم که آیا لینوکس فقط با اسلش مشکل داره؟ یا ستاره و علامت سوال همینطوری میشه؟ چون من خودم به شخصی باهاشون مشکی نداشتم.

      این موضوع پاک نشدنم مربوط به این میشه که شما بعضی اوقات مجبورید فولدری با اسمی مشابه 10/11/2006 که داخل ویندوز هست رو پاک کنی! چون ویندوز مشکلی با این فولدرا نداره. تکنیک پاک کرنشون هم استفاده از inode هست:)

  6. Amir نیم‌رخ

    سلام دوست عزیز
    اگر با تبادل لینک موافقی لطفا خبرم کن
    فعلا بای

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *