درک کردن ساختار فایل 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
نمونه خروجی
۳۲۸۲۰ /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”
ههههههه
خودم برای خودم نظر می دم به هر هال این اولین پست من بود امید وارم خوشتون بیاد
==========
WhiteCrow1
منبع جامع و خوبی در رابطه با ساختاز Inode ها می تونید معرفی کنید؟
کامران جان سلام
این کتاب می تونه مرجع خوبی برات باشه
Wiley _ Unix Filesystems – Evolution, design and implementation
آقا من اون پارگراف آخر رو نفهمیدم! من این فایل رو ساختم خیلی راحتم پاک کردمش:)
کدوم فایلا رو نمیشه پاک کرد!؟
فکر کنم منظورش اسپیشال کارکتر ها هستش که نمی شه به راحتی با rm پاک کرد
مثالش فاصله هایی که بین الفبا در یک کلمه وجود دارند ولی دیده نمی شوند.ولی با سک خورده گوگل آدم دستش میاد :)
سلام آرش جان و نوید جان
مطلب خوبی بود. دستت درد نکنه
ولی یکی دو تا اشتباه داشت. توی بند آخر:
۱- «کنترل کاراکتر» نه. «کاراکتر کنترلی» درسته.
۲- این مطلب «این فایل ها یا کاراکترهای خاصی مثل ?, * ^ و غیره نمی توانند به وسیله کیبرد اعمال شوند . برای پاک کردن این ها باید از inode number بهره ببرید .» اشتباهه. میشه با single quote این کاراکترهای کنترلی رو غیر فعال کرد (غیر از back slash که اولویتش از همه بیشتره) پس کافیه توی هر دستوری (مثلاً دستور rm) اسم فایل رو داخل single quote بذاریم.
سلام. منم خودم فهمیدم یه جای کار می لنگه:) منتها هنوز درستش رو متوجه نشدم. ببین ظاهرا تو لینوکس یک سری اسامی رو نمیشه ایجاد کرد. مثل چی؟ شما سعی کن یه فولدر مشابه این اسم بسازی: ۱۰/۱۱/۲۰۰۶
پیغام خطایی که می گیریم اینه:
Sorry, could not rename “untitled folder” to “10/11/2006”: Slashes are not allowed in filenames
اصلا اجازه به کار بردن اسلش رو نداریم!
حالا من متوجه نشدم که آیا لینوکس فقط با اسلش مشکل داره؟ یا ستاره و علامت سوال همینطوری میشه؟ چون من خودم به شخصی باهاشون مشکی نداشتم.
این موضوع پاک نشدنم مربوط به این میشه که شما بعضی اوقات مجبورید فولدری با اسمی مشابه ۱۰/۱۱/۲۰۰۶ که داخل ویندوز هست رو پاک کنی! چون ویندوز مشکلی با این فولدرا نداره. تکنیک پاک کرنشون هم استفاده از inode هست:)
سلام دوست عزیز
اگر با تبادل لینک موافقی لطفا خبرم کن
فعلا بای