با گذشت زمان ، ممکن است درایو دیسک شما با تعداد زیادی از فایل های غیر ضروری که فضای زیادی از دیسک را اشغال می کنند ، به هم ريخته شود. معمولاً سیستم های لینوکس به دلیل وجود فايل های بزرگ log یا بكاپ از فضای دیسک خالی می شوند. در این مقاله ، نحوه يافتن فايل های بزرگ در سیستم های لینوکس با استفاده از دستورهای find و du توضیح داده شده است. با ما در شتابان هاست همراه باشيد.
1) یافتن فایل های بزرگ با استفاده از دستور find
شما مي توانيد با دستور find فايل هاي بزرگ را در لينوكس پيدا كنيد؛ دستور find یکی از قدرتمندترین ابزارها در سیستم های مدیریت لینوکس است. این امکان را به شما می دهد تا بر اساس معیارهای مختلف از جمله اندازه پرونده ، فایل ها و فهرست ها را جستجو کنید.
به عنوان مثال ، اگر می خواهید فايل هایی با اندازه بزرگتر از 100 مگابایت را جستجو کنید ، در فهرست کار فعلی شما از دستور زیر استفاده می کنید:
sudo find . -xdev -type f -size +100M
خروجی لیستی از پرونده ها را بدون اطلاعات اضافی نشان می دهد.
/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
/var/lib/libvirt/images/debian-9_default.img
/var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
/var/lib/libvirt/images/centos-7_default.img دستور find علاوه بر يافتن فايل هاي بزرگ می تواند در ترکیب با ابزارهای دیگر مانند ls یا sort برای انجام عملیات بر روی آن پرونده ها استفاده شود.
در مثال زیر ، ما خروجی دستور find را به ls منتقل می کنیم که اندازه هر پرونده یافت شده را چاپ می کند و سپس آن خروجی را sort می کند تا بر اساس ستون 5 که اندازه پرونده است sort شود.
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
خروجی چیزی شبیه به این خواهد بود:
-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img
-rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
-rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img
-rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img اگر خروجی حاوی بسیاری از خطوط اطلاعات است ، می توانید از دستور head برای چاپ فقط 10 خط اول استفاده کنید:
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head
- find . -xdev -type f -size +100M -print فقط برای فایلها جستجو کنید (type f-) ،در فهرست کار فعلی (.) بزرگتر از 100MBبايد (-size +100M) ،دایرکتوری ها را در سیستم های دیگر فایلها نزنید (-xdev) ، نام کامل پرونده را روی خروجی استاندارد چاپ کنید ، و به دنبال آن یک خط جدید (-print).
- xargs ls -lh خروجی دستور find به xargs تبدیل می شود که دستور ls -lh را اجرا می کند؛ خروجی را با فرمت قابل خواندن با لیست طولانی چاپ می کند.
- sort -k5,5 -h -r خطوط را بر اساس ستون 5 sort کنید (-k5،5) ، مقادیر را با فرمت قابل خواندن توسط انسان (-h) مقایسه کرده و نتیجه (-r) را معکوس کنید.
- head: تنها 10 خط اول خروجی را چاپ می کند.
دستور find با گزینه های قدرتمند زیادی همراه است. به عنوان مثال ، می توانید پرونده های بزرگی را که از X روز قدیمی تر است ، فایل های بزرگ با پسوند خاص یا پرونده های بزرگ که به یک کاربر خاص تعلق دارند را جستجو کنید.
2) با استفاده از دستور du فایل های بزرگ را پیدا کنید
شما مي توانيد با دستور du فايل هاي بزرگ در لينوكس را پيدا كنيد؛ دستور du برای تخمین میزان استفاده از فضای فایل استفاده می شود و به ویژه برای یافتن دایرکتوری ها و فایل هایی که مقدار زیادی فضای دیسک مصرف می کنند بسیار مفید است.
دستور زیر بزرگترین پرونده ها و فهرست ها را چاپ می کند:
du -ahx . | sort -rh | head -5
ستون اول شامل اندازه پرونده و دسته دوم نام پرونده:
55G .
24G ./.vagrant.d/boxes
24G ./.vagrant.d
13G ./Projects
5.2G ./.minikube
- du -ahx میزان استفاده از فضای دیسک را در فهرست کار فعلی (.) تخمین بزنید ، هر دو پرونده و دایرکتوری (a) ، اندازه های چاپ را با فرمت قابل خواندن توسط انسان (h) و دایرکتوری ها در سیستم های مختلف فایل (x) بشمارید.
- sort -rh مرتب کردن خطوط با مقایسه مقادیر در قالب قابل خواندن توسط انسان (-h) و نتیجه معکوس (-r).
- head -5 تنها 5 خط اول خروجی را چاپ می کند.
يافتن فايل های بزرگ در زمانی که دیسک شما پر است براي آزاد كردن ديسك بسیار مفید است. ما را در شتابان هاست دنبال كنيد.
