نحوه پیدا کردن فایل هایی با حجم زیاد در لینوکس

فضای هاردها به سرعت پر می شوند .حال اگر با سروری روبرو هستیم که هارد آن پر شده و یا سهم عمده ای از فضای آن توسط اطلاعاتی اشغال شده که نمی دانیم این اطلاعات کجا هستند و چطور باید آنها را پیدا کنیم تا در خصوص حذف آنها تصمیم گیری نماییم چه راهکاری وجود دارد؟؟؟

متاسفانه دستور خاصی جهت پیدا کردن فایلهای حجیم در سیستم عامل های لینوکس وجود ندارد، با این حال شما می توانید با استفاده از دستور find به همراه برخی از امکانات Shell به مقصود خود دست یابید.

نکته : توصیه اکید ما این است که پیش از حذف فایل ها از تصمیم خود کاملا اطمینان حاصل کنید زیرا لینوکس مکانیزم هایی مانند Recycle bin در ویندوز را ندارد و حذف یک فایل معادل با از دست رفتن کامل آن است.

 

برای این منظور از دستورالعمل زیر استفاده کنید:

"find {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

برای پیدا کردن فایلهای بیش از 50MB در پوشه فعلی از دستور زیر استفاده کنید:

$ find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

جهت جستجو در پوشه /var/log/ از دستور زیر استفاده کنید:

# find /var/log -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

در توزیع های Ubunto / Linux از دستور زیر استفاده کنید:

find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

و برای جستجو در پوشه فعلی:

$ find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

نمونه خروجی:

./.kde/share/apps/akregator/Archive/http___blogs.msdn.com_MainFeed.aspx?Type=AllBlogs.mk4: 91M
./out/out.tar.gz: 828M
./.cache/tracker/file-meta.db: 101M
./ubuntu-8.04-desktop-i386.iso: 700M
./MSH/out/mp3/Shadmani: 230M

دستورات فوق فایلهایی را که بیش از 10000 کیلوبایت حجم دارند را نمایش می دهند. 

جهت پیدا کردن کلیه فایلهایی که در پوشه Home هستند و حجم آنها کمتر از 500 بایت می باشد از دستور زیر استفاده کنید:

$ find $HOME -size -500b 

یا

$ find ~ -size -500b 

برای پیدا کردن فایلهایی که حجم آنها دقیقا 20 بلوک 512 بایتی می باشد از دستور زیر استفاده کنید:

# find / -size 20