Linux

linux & IT …

درک کردن ساختار فایل 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 بهره ببرید .

Advertisements

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

  1. arastoo.s 2010/04/25 در 5:30 ق.ظ.

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

    ==========
    WhiteCrow1

  2. کامران 2010/04/25 در 10:58 ق.ظ.

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

  3. arastoo.s 2010/04/25 در 11:21 ق.ظ.

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

  4. erghezi 2010/04/25 در 5:05 ب.ظ.

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

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

    • پویان 2010/04/26 در 10:41 ب.ظ.

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

  5. saeedgnu 2010/04/28 در 12:46 ق.ظ.

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

    • erghezi 2010/04/28 در 1:16 ق.ظ.

      سلام. منم خودم فهمیدم یه جای کار می لنگه:) منتها هنوز درستش رو متوجه نشدم. ببین ظاهرا تو لینوکس یک سری اسامی رو نمیشه ایجاد کرد. مثل چی؟ شما سعی کن یه فولدر مشابه این اسم بسازی: 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 2010/04/29 در 11:50 ب.ظ.

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

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: