نحوه استفاده از دستور stat در لینوکس

توسط mrbardia72
زمان خواندن 2 دقیقه
نحوه استفاده از دستور stat در لینوکس

نحوه استفاده از دستور stat در لینوکس

دستور stat Linux به شما جزئیات بیشتری از ls نشان می دهد. ما به شما نحوه استفاده از آن را نشان خواهیم داد. ما با استفاده از این روش میخواهیم اطلاعات خوبی را در مورد یک پرونده به شما نشان دهیم ، مانند مجوزهایی که روی آن تنظیم شده است ، و سایز و نوع فایل و آیا این یک فایل یا یک پیوند نمادین است. برای نمایش این اطلاعات ، آن را از ساختار سیستم فایل به نام یک inode خوانده می شود. در واقع این inodeچیه حالا هر پرونده و پوشه دارای یک inode است. inode دارای داده های مربوط به پرونده است ، مانند اینکه کدام سیستم فایل را اشغال می کند ، و تمبرهای تاریخ مربوط به پرونده را ذخیره می کند. inode مانند کتابخانه برای پرونده است. اما فقط بعضی از اطلاعات را به شما نشان می دهد. برای دیدن همه چیز ، باید از دستور stat استفاده کنیم.

مقایسه سریع

بیایید از ls استفاده کنیم تا یک لیست با اندازه پرونده در اختیار ما قرار میدهد.

ls -lh ana.h

خروجی به شکل زیر

از چپ به راست ، اطلاعاتی که ls ارائه می دهد عبارتند از:

خط تیره اول به ما می گوید که فایل یک فایل معمولی است و نه سوکت ، و نه نوع دیگری.

مجوزها با فرمت octal ذکر شده اند.

تعداد پیوندهای اشاره شده به این پرونده

مالک پرونده دیوید است.

صاحب گروه دیوید است.

اندازه پرونده 802 بایت است.

پرونده آخرین بار در روز جمعه سیزدهم دسامبر 2015 اصلاح شد.

نام پرونده ana.c.

بیایید نگاهی با آمار داشته باشیم:

stat ana.h

اطلاعاتی که از stat دریافت می کنیم عبارتند از:

File:

نام پرونده. معمولاً همان اسمی است که برای ثبت در خط فرمان گذاشتیم

Size:

اندازه پرونده ( بایت)

Blocks:

تعداد بلوک های که در سیستم فایل نیاز هست ، تا در هارد دیسک ذخیره شود

IO Block:

اندازه یک بلوک سیستم فایل

File type:

نوع metadata ها را توصیف می کند. متداول ترین نوع این metadata ها پرونده ها و دایرکتوری ها هستند اما می توانند لینک ها ، یا سو کت های نامگذاری شده باشند

Device:

شماره Device به صورت هگزادسیمال و دسیمال است. این شناسه هارد دیسک است که پرونده در آن ذخیره می شود.

Inode:

شماره inode یعنی شماره شناسه این inode

Links:

این شماره نشان دهنده تعداد پیوندهای به این پرونده است. که هر پیوند دارای inode خاص خود است. بنابراین این رقم به معنی اینست که چند inode به این پرونده اشاره دارد. هر بار که یک Links ایجاد یا حذف می شود ، این شماره به بالا یا پایین تنظیم می شود. هنگامی که به صفر رسید ، خود پرونده حذف شده و inode حذف می شود.

Access:

مجوزهای پرونده را نشان می دهد

Uid:

شناسه کاربر و نام حساب مالک.

Gid:

شناسه گروه و نام حساب مالک.

Modify:

زمان آخرین تغییر محتوای پرونده است.

Change:

ویژگی ها یا محتویات فایل آخرین بار تغییر یافته است. اگر با تنظیم مجوزهای جدید فایل را تغییر دهید ، نشانگر تغییر زمان به روز می شود

Birth:

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

مفهوم Timestamps

نشان های منطقه زمانی هستند. -0500 در پایان هر خط نشان می دهد که این پرونده در یک منطقه زمانی جهانی هماهنگ (UTC) بر روی رایانه ایجاد شده است که پنج ساعت از منطقه زمانی رایانه فعلی فاصله دارد. بنابراین این رایانه پنج ساعت از رایانه ای که این پرونده را ایجاد کرده است عقب است. در حقیقت ، این پرونده بر روی یک رایانه در منطقه زمانی انگلیس ایجاد شده است ، و ما آن را در اینجا در رایانه ای در منطقه زمانی استاندارد شرقی آمریکا مشاهده می کنیم.

بیایید از chmod برای تغییر مجوزهای پرونده در پرونده ای به نام ana.c. استفاده کنیم. ما قصد داریم آن را برای همه قابل نوشتن کنیم. این روی محتوای پرونده تأثیر نمی گذارد ، اما روی ویژگی های پرونده تأثیر می گذارد.

chmod +w ana.c

بااستفاده از دستور زیر می توانیم منطقه زمانی را مشاهده کنیم:

stat ana.c

استفاده از Stat با چندین فایل

برای داشتن گزارش آماری در چندین پرونده به طور هم زمان ، نام پرونده ها را در حالت خط فرمان به صورت زیر قرار دهید:

stat ana.h ana.o

برای استفاده از الگوی باید از علامت سؤال "؟" برای هر کاراکتر استفاده کنیم ، و علامت "*" بیانگر هر رشته ای از می باشد. ما می توانیم به stat بگوییم که پرونده ای بنام "ana" را با یک حرف اضافه با این دستور گزارش دهد:?

stat ana.?

با استفاده از stat برای گزارش در مورد Filesystems

درواقع stat می تواند وضعیت سیستم های پرونده ها و همچنین وضعیت پرونده ها را گزارش کند.

گزینه -f گزینه stat را برای گزارش در سیستم پرونده ای می باشد.

stat -f ana.c

آمارو اطلاعاتی که به ما می دهد:

File:

نام پرونده.

ID:

شناسه سیستم فایل در حالت hexadecimal.

Namelen:

حداکثر طول مجاز برای نام پرونده ها.

Type:

نوع سیستم فایل.

Block size:

مقدار داده درخواست برای خواندن نرخ انتقال بهینه داده ها.

Fundamental block size:

اندازه هر بلوک سیستم فایل.

Total:

تعداد کل بلوک ها در سیستم پرونده.

Free:

تعداد بلاک های رایگان در سیستم پرونده.

Available:

تعداد بلاک های رایگان در دسترس کاربران معمولی (غیر ریشه) است.

Total:

تعداد کل ورودیها در سیستم پرونده.

Free:

تعداد ورودی های رایگان در سیستم پرونده.

ارجاعات Symbolic Links:

اگر میخواهید پرونده ای که به صورت symbolic link هست رو مشاهده کنید باید به صورت زیر عمل کنید:

stat -L code.c

قالب های خروجی سفارشی:

یک راه بهتر برای به دست آوردن مجموعه ای از داده ها در stat ، استفاده از یک قالب سفارشی است. یک لیست طولانی از نشانه ها به نام توالی قالب وجود دارد. هر یک از این عناصر داده را نشان می دهد. موارد مورد نظر خود را در خروجی انتخاب کرده و یک رشته فرمت ایجاد کنید.

مجموعه های مختلفی از دنباله های فرمت برای فایلها و سیستم فایلها وجود دارد. لیست پرونده ها:

%a: The access rights in octal.

%A: The access rights in human-readable form (rwx).

%b: The number of blocks allocated.

%B: The size in bytes of each block.

%d: The device number in decimal.

%D: The device number in hex.

%f: The raw mode in hex.

%F The file type.

%g: The group ID of the owner.

%G: The group name of the owner.

%h: The number of hard links.

%i: The inode number.

%m: The mount point.

%n: The file name.

%N: The quoted file name, with dereferenced filename if it is a symbolic link.

%o: The optimal I/O transfer size hint.

%s: The total size, in bytes.

%t: The major device type in hex, for character/block device special files.

%T: The minor device type in hex, for character/block device special files.

%u: The user ID of the owner.

%U: The user name of the owner.

%w: The time of file birth, human-readable, or a hyphen “-” if unknown.

%W: The time of file birth, seconds since the Epoch; 0 if unknown.

%x: The time of last access, human-readable.

%X: The time of last access, seconds since the Epoch.

%y: The time of last data modification, human-readable.

%Y: The time of last data modification, seconds since the Epoch.

%z: The time of last status change, human-readable.

%Z: The time of last status change, seconds since the Epoch.

برای سیستم فایل ها قالب به صورت زیر می باشد:

%a: The number of free blocks available to regular (non-root) users.

%b: The total data blocks in the filesystem.

%c: The total inodes in the filesystem.

%d: The number of free inodes in the filesystem.

%f: The number of free blocks in the filesystem.

%i: The file system ID in hexadecimal.

%l: The maximum length of filenames.

%n: The filename.

%s: The block size (the optimum writing size).

%S: The size of filesystem blocks (for block counts).

%t: The file system type in hexadecimal.

%T: file system type in human-readable form.

دو گزینه وجود دارد که رشته های دنباله فرمت را می پذیرند. اینها --format و --printf هستند. تفاوت بین آنها این است --printf توالی به سبک C مانند newline \ n و برگه \ t را تفسیر می کند ، و به طور خودکار کاراکتر جدیدی به خروجی آن اضافه نمی کند.

مانند حالت زیر

stat --printf="File %n is %s bytes, and is a %F\n" code.c ana/ana.?

گزارش برای هر پرونده در یک خط جدید ذکر شده است ، همان چیزی است که ما درخواست کردیم. نام پرونده ، اندازه پرونده و نوع پرونده برای ما تهیه شده است. قالبهای سفارشی به شما امکان دسترسی حتی به عناصر داده حتی بیشتر از آنچه در خروجی استاندارد استاندارد موجود است ، می دهد.