خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
آشنایی با دستور du در لینوکس
دستور du که مخفف " disk usage" است، میزان تخمینی فضای دیسک مورد استفاده توسط فایل ها یا دایرکتوری های مشخص شده را نمایش می دهد. du عملا برای یافتن فایل ها و دایرکتوری هایی که حجم زیادی از فضای دیسک را اشغال می کنند مفید است.
اگر FILE داده شده یک دایرکتوری باشد، du میزان استفاده از دیسک یا disk usage هر فایل و ساب دایرکتوری در آن دایرکتوری را نشان می دهد. اگر FILE مشخص نشده باشد، du میزان استفاده از دیسک دایرکتوری جاری را گزارش خواهد کرد.
اگر du بدون هیچ گزینه ای اجرا و فراخوانی شود، میزان استفاده از دیسک دایرکتوری جاری و ساب دایرکتوری را به بایت نشان می دهد:
همچنین می توانید چندین فایل و دایرکتوری را به عنوان آرگومان به دستور du پاس دهید:
کافیست که دایرکتوری ها را با فاصله از هم مشخص کنید.
اگر du را روی فایل یا دایرکتوری ای اجرا کنید که مجوزی برای آن ندارید، پیغامی شبیه به «du: can read directory» دریافت خواهید کرد. در این شرایط دستور را باید با sudo اجرا کنید. du گزینه های زیادی دارد، ما فقط پرکاربردترین آنها را در این مطلب پوشش خواهیم داد.
گزینه a- به du می گوید که میزان استفاده از فضای دیسک هر فایل را در دایرکتوری نمایش دهد.
عمدتا خواهان این هستید تا فضای اشغال شده توسط دایرکتوری مشخص شده را در فرمتی قابل خواندن نمایش دهید. در این خصوص باید از گزینه h- استفاده کنید.
به عنوان مثال، برای بدست آوردن حجم کل var/lib و همه ساب دایرکتوری های آن، دستور زیر را اجرا کنید:
ما از sudo استفاده می کنیم زیرا اکثر فایل ها و دایرکتوری های داخل دایرکتوری var/lib متعلق به کاربر root هستند و توسط کاربران عادی قابل خواندن نیستند. خروجی چیزی شبیه به خروجی خواهد بود که البته خروجی شما می تواند متفاوت باشد:
برای نمایش فقط حجم کلی دایرکتوری مشخص شده و نه برای ساب دایرکتوری ها از گزینه s- استفاده کنید:
حتی می توانید با استفاده از گزینه c- حجم چندین فایل را که با فاصله مشخص می کنید را بدست آورید:
اگر میخواهید میزان استفاده از دیسک ساب دایرکتوری ها در n سطح پایین تر را نمایش دهید، از گزینه max-depth-- استفاده کنید و سطح ساب دایرکتوری را مشخص کنید. به عنوان مثال، برای دریافت گزارش در مورد دایرکتوری های سطح اول از دستور زیر استفاده کنید:
رفتار پیشفرض ابزار du به این صورت است که فضای دیسک مورد استفاده دایرکتوری یا فایل را تغییر دهد. برای یافتن اندازه ظاهری(apparent size) یک فایل، از کلید apparent-size-- استفاده کنید. apparent size در واقع نشان دهنده حجم واقعی یک فایل است.
du همچنین به شما امکان می دهد از shell pattern استفاده کنید. به عنوان مثال، برای به دست آوردن اندازه همه دایرکتوری هایی که با "Do" شروع می شوند و در دایرکتوری home قرار دارند، باید دستور زیر را اجرا کنید:
دستور du را می توان با دستورات دیگر با pipe ترکیب کرد. به عنوان مثال، برای پرینت 5 دایرکتوری بزرگ در داخل فولدر var/ باید خروجی du را به دستور sort ارسال کنید تا دایرکتوری ها بر اساس حجم شان مرتب شوند و سپس خروجی را به دستور head باید pipe کنید که فقط 5 دایرکتوری بزرگ را نمایش دهد:
How to Use the du command
Syntax دستور du بصورت زیر می باشد:du [OPTIONS]... FILE...
اگر FILE داده شده یک دایرکتوری باشد، du میزان استفاده از دیسک یا disk usage هر فایل و ساب دایرکتوری در آن دایرکتوری را نشان می دهد. اگر FILE مشخص نشده باشد، du میزان استفاده از دیسک دایرکتوری جاری را گزارش خواهد کرد.
اگر du بدون هیچ گزینه ای اجرا و فراخوانی شود، میزان استفاده از دیسک دایرکتوری جاری و ساب دایرکتوری را به بایت نشان می دهد:
du ~/Documents
همچنین می توانید چندین فایل و دایرکتوری را به عنوان آرگومان به دستور du پاس دهید:
du ~/Documents ~/Pictures ~/.zshrc
کافیست که دایرکتوری ها را با فاصله از هم مشخص کنید.
اگر du را روی فایل یا دایرکتوری ای اجرا کنید که مجوزی برای آن ندارید، پیغامی شبیه به «du: can read directory» دریافت خواهید کرد. در این شرایط دستور را باید با sudo اجرا کنید. du گزینه های زیادی دارد، ما فقط پرکاربردترین آنها را در این مطلب پوشش خواهیم داد.
گزینه a- به du می گوید که میزان استفاده از فضای دیسک هر فایل را در دایرکتوری نمایش دهد.
du -a ~/Documents
عمدتا خواهان این هستید تا فضای اشغال شده توسط دایرکتوری مشخص شده را در فرمتی قابل خواندن نمایش دهید. در این خصوص باید از گزینه h- استفاده کنید.
به عنوان مثال، برای بدست آوردن حجم کل var/lib و همه ساب دایرکتوری های آن، دستور زیر را اجرا کنید:
sudo du -h /var
ما از sudo استفاده می کنیم زیرا اکثر فایل ها و دایرکتوری های داخل دایرکتوری var/lib متعلق به کاربر root هستند و توسط کاربران عادی قابل خواندن نیستند. خروجی چیزی شبیه به خروجی خواهد بود که البته خروجی شما می تواند متفاوت باشد:
...
4.0K /var/lib/apt/mirrors/partial
8.0K /var/lib/apt/mirrors
205M /var/lib/apt
2.9G /var/lib/
برای نمایش فقط حجم کلی دایرکتوری مشخص شده و نه برای ساب دایرکتوری ها از گزینه s- استفاده کنید:
sudo du -sh /var
2.9G /var
حتی می توانید با استفاده از گزینه c- حجم چندین فایل را که با فاصله مشخص می کنید را بدست آورید:
sudo du -csh /var/log /var/lib
1.2G /var/log
2.9G /var/lib
4.1G total
اگر میخواهید میزان استفاده از دیسک ساب دایرکتوری ها در n سطح پایین تر را نمایش دهید، از گزینه max-depth-- استفاده کنید و سطح ساب دایرکتوری را مشخص کنید. به عنوان مثال، برای دریافت گزارش در مورد دایرکتوری های سطح اول از دستور زیر استفاده کنید:
sudo du -h --max-depth=1 /var/lib
...
544K /var/lib/usbutils
4.0K /var/lib/acpi-support
205M /var/lib/apt
2.9G /var/lib
رفتار پیشفرض ابزار du به این صورت است که فضای دیسک مورد استفاده دایرکتوری یا فایل را تغییر دهد. برای یافتن اندازه ظاهری(apparent size) یک فایل، از کلید apparent-size-- استفاده کنید. apparent size در واقع نشان دهنده حجم واقعی یک فایل است.
sudo du -sh --apparent-size /var/lib
2.9G /var/lib
du همچنین به شما امکان می دهد از shell pattern استفاده کنید. به عنوان مثال، برای به دست آوردن اندازه همه دایرکتوری هایی که با "Do" شروع می شوند و در دایرکتوری home قرار دارند، باید دستور زیر را اجرا کنید:
sudo du -csh ~/Do*
102M /home/khoshamoz/Documents
358M /home/khoshamoz/Downloads
460M total
دستور du را می توان با دستورات دیگر با pipe ترکیب کرد. به عنوان مثال، برای پرینت 5 دایرکتوری بزرگ در داخل فولدر var/ باید خروجی du را به دستور sort ارسال کنید تا دایرکتوری ها بر اساس حجم شان مرتب شوند و سپس خروجی را به دستور head باید pipe کنید که فقط 5 دایرکتوری بزرگ را نمایش دهد:
sudo du -h /var/ | sort -rh | head -5
4.6G /var/
2.9G /var/lib
2.6G /var/lib/snapd
1.7G /var/lib/snapd/snaps
1.2G /var/log/journal/af8ce1d394b844fea8c19ea5c6a9bd09
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: