نمایش اندازه دایرکتوری ها و فایل ها (یونیکس ها)

نمایش اندازه دایرکتوری ها و فایل ها (یونیکس ها)

 du مخفف disk usage دستوری برای نشان داده حجم دایرکتوری ها و فایل های درون دایرکتوری ها ست. اگر بدون هیچ سوئیچ و پارامتری استفاده شود، حجم (میزان استفاده از دیسک) دایرکتوری ها و فایل های درون دایرکتوری جاری را نشان می دهد. معمولن خروجی دستور زیاد است پس بهتر است از دستور less برای صفحه بندی خروجی استفاده کنیم. شکل کلی دستور بصورت زیر است.

du   OPTIONS  /path/to/dir

du   OPTIONS  /path/to/file

خط اول دستور های بالا به یک دایرکتوری ختم می شود و حجم تمامی فایل ها و دایرکتوری های درون آن فایل بصورت سلسله مراتبی (درختی) را نشان می دهد. اگر هیچ گزینه یا سوئیج یا OPTION ی بکار نرود و مسیری هم تعیین نشود بصورت پیش فرض دایرکتوری جاری در نظر گرفته می شود که به دو صورت زیر استفاده می شود. علامت نقطه در خط دوم نشانگر دایرکتوری جاری است.

du  | less

du  . | less

du داده ها را بر اساس بلاک هایی از حجم داده ها نشان می دهد که پیش فرض 1024 بایت است. یعنی حجم کل داده را بر 1024 تقسیم/ضرب می کند و عدد خروجی را نشان می دهد. دو سوئیچ  k- و b- خروجی را بر اساس کیلو بایت و بایت نشان می دهد. چند مثال زیر :

du  -k  /etc/ | less

du  -b  /etc/ | less

البته باید برای فهرست کردن حجم دایرکتوری ها و فایل های درون آنها باید مجوز خواندن بر روی آن فایل را داشته باشید که در صورت عدم داشتن مجوز خطای Can not read directory نشان داده می شود. بطور مثال برخی از دایرکتوری های درون etc/ فقط برای root مجوز دارند پس مانند شکل یک کاربر معمولی خطا را در یافت می کند.

معمولن اعداد خروجی که یا بر حسب بایت، کیلو بایت و یا مگابایت هستندغیر قابل درک هستند مثلن عدد بر حسب کیلو بایت عدد 10664 است و قابل درک یا خوانا نیست. برای همین از سوئیج h- یا human-readable– استفاده می کنیم که از کاراکتر های k برای کیلو بایت و m برای مگابایت استفاده می کند.

du  -h  /etc  |  less

 du بصورت پیش فرض فقط حجم را برای دایرکتوری ها نشان می دهد یعنی حجم کلی یک دایرکتوری بر اساس فایل ها و دایرکتوری های درون آن بصورت سلسله مزاتبی نشان داده می شود و اگر بخواهید حجم یک فایل را ببینید یا باید مسیر منتهی به فایل را مانند دومین خط از اولین مثال ببینید یا اینکه از سوئیچ a- استفاده کنید تا هم حجم دایرکتوری ها و هم حجم فایل ها نشان داده شود.

du  -ka  /etc  |  less

du  -ba  /etc  | less

du  -ha  /etc  | less

خروجی du را با و بدون a- مقایسه کنید.

خروجی دستور du بصورت پیش فرض تنها حجم دایرکتورها را نشان می دهد . حجم هر دایرکتوری را جدا از دایرکتوری دیگر نشان می دهد. سوئیچ s- بصورت خلاصه شده مجموع حجم یک دایرکتوری را نشان می دهد.

du  -sh  /etc

البته می توانید از سوئیچ برای نشان داده همزمان حجم بیش از یک دایرکتوری (یک مسیر استفاده کنید) مانند مثال های زیر :

du  -k  /etc  /home

du  -ka  /etc  /home

du  -b  /etc  /home

du  -ba  /etc  /home

du  -h  /etc  /home

du  -ha  /etc  /home

du  -sh  /etc  /home

سوئیچ c- نیز مانند s- مجموع کل حجم را نشان می دهد ولی در خروجی c- مانند قبل لیستی از تمامی فایل ها به همره حجمشان نشان داده می شود ولی خروجی s- تنها حجم کل را نشان می دهد. حجم کل در c- در انتهای لیست چاپ می شود.

du  -ch  /etc  |  less

خروجی سوئیچ های s- و c- را با هم مقایسه کنید.

سوئیچ exclude– برای زمانی استفاده می ود که می خواهید حجم یک دایرکتوری را پیدا کنید ولی برخی از فرمت ها مانند pdf و یا mp3 ها در نظر گرفته نشوند ( تمامی فایل ها جز فرمت های pdf و mp3 )

du  -h  –exclude=’*.pdf’  /home

du  -h  –exclude=’*.mp3′  /home

du  -h  –exclude=’*.pdf,*.mp3′  /home

و همچنین می توانید راهنمای “دستور df” را برای گزارش دادن میزان فضای مصرفی سیستم فایل بخوانید.