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