du - فضای مصرفی درمسیرها و زیر مسیرها و فایل‌ها

du - از این دستور برای فضای مصرفی در مسیرها و زیر مسیرها و فایل‌ها استفاده می‌شود.

شکل کلی دستور:

$ du [options] [files or directories]

این دستور که مخفف Disk Usage می‌باشد برای گزارش‌گیری اندازه درختان دایرکتوری (مسیر) از تمام محتویات آن‌ها و اندازه فایل‌ها که به صورت منحصر به‌فرد ذکر می‌شود، تلقی می‌شود.

این دستور با توجه به شرایط برای زمانی خوب است که می‌خواهید از یک دایرکتوری گزارش‌گیری در مورد اندازه ی محتویات آن داشته باشید.

نکته‌ی مثبت این دستور از سایر دستورات مشابه، بهره‌گیری از قدرت بازگشتی Recursive که به صورت باطنی Built-in داراست می‌باشد.

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

ناگفته نماند که منظور از درختان دایرکتوری، سلسله مراتب دایرکتوری‌ها به زیردایرکتوری‌هاست که یک دایرکتوری می‌تواند نقش والد یا به عبارت دیگر دایرکتوری سطح بالا (top level directory) باشد و بقیه دایرکتوری‌ها، به عنوان فرزندان آن باشند.

در ابتدا با ساده‌ترین مثال شروع می کنیم.

مثال:

$ du /home/username |more

خروجی این دستور ممکن است بسیار طولانی باشد که شامل دایرکتوری، زیردایرکتوری و فایل‌ها باشد. به همین دلیل از more استفاده کردیم که به صورت صفحه صفحه برای ما نشان دهد.

(فضای مصرفی حاصل از دایرکتوری شامل زیردایرکتوری و فایل‌ها خواهد بود)

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

همانطور که در مثال بالا دیدید، du هم می‌تواند به صورت لوله‌بندی در بیاید. مثال دیگری که می‌توان در این میان زد:

$ du /home/username | sort -n

است که براساس سایز از کوچک به بزرگ مرتب‌سازی می‌کند.

du می‌تواند اطلاعاتی در مورد هرگونه درختان دایرکتوری یا فایل‌ها بر روی سیستم که نام آن‌ها به عنوان آرگومان داده شده است ارائه دهد. مثال زیر گزارش نام‌ها و اندازه برای هر شاخه در درخت دایرکتوری که با یک دایرکتوری به نام directory2 که ساکن در یک دایرکتوری به نام directory1 است که به نوبه خود، در دایرکتوری جاری قرار دارد آغاز می شود را، می‌دهد:

مثال:

$ du directory1/directory2

به همین ترتیب در مورد فایل‌ها هم همین‌طور است. در مثال زیر سایز دو فایل یک و دو را در مسیر sbin/ (مسیر sbin حاوی برنامه‌های اجرایی و... است)می‌باشد را در خروجی قرار می‌دهد:

$ du /sbin/file1 /sbin/file2

گزینه‌های اختیاری

a-: که مخفف all می‌باشد که برای خروجی گرفتن نه تنها دایرکتوری‌ها بلکه برای فایل‌ها هم صورت می گیرد.

مثال:

$ du -a
1  /etc/other
4  /etc/other2
5  /etc

که اگر بدون گزینه‌ی اختیاری بنویسیم خواهیم داشت:

$ du -a
5  /etc

s-: از این گزینه اختیاری زمانی استفاده می‌شود که شما فقط یک مقدار کل را بخواهید.

مثال:

$ du -s /sbin
10320    /sbin

h-: اگر مایل هستید خروجی شما به‌طوری که شما بتوانید به راحتی مقدار را بخوانید از این دستور استفاده کنید (خروجی حاصل Size-MB یا... ).

مثال:

$ du -sh /sbin
11M    /sbin

c-: این گزینه‌ی اختیاری می‌تواند برای ارائه یک نتیجه‌ی کلی برای تمام فایل‌ها و دایرکتوری‌ها که ذکر شده است، استفاده شود.

مثال:

$ du -c /sbin
10320    /sbin
10320    total

b-: از این گزینه برای خروجی که براساس بایت است مورد استفاده قرار می‌گیرد.

مثال:

$ du -b / | more
4096    /cdrom
11079    /lib/recovery-mode/options
19386    /lib/recovery-mode
5449    /lib/crda/pubkeys
13201    /lib/crda

time--: برای نمایش زمان اصلاح استفاده می‌شود.

مثال:

$ du -b --time / | more
4096    2012-10-26 02:35    /cdrom
11079    2012-10-17 18:28    /lib/recovery-mode/options
19386    2012-10-26 02:33    /lib/recovery-mode
5449    2012-10-17 18:28    /lib/crda/pubkeys
13201    2012-10-17 18:28    /lib/crda
91480    2012-10-17 18:26    /lib/plymouth/renderers
47805    2012-10-17 18:29    /lib/plymouth/themes/ubuntu-logo
4180    2012-10-17 18:26    /lib/plymouth/themes/details
4506    2012-12-01 06:03    /lib/plymouth/themes/ubuntu-text
60691    2012-12-01 06:03    /lib/plymouth/themes
270574    2012-12-01 06:03    /lib/plymouth