حذف دایرکتوری های بزرگ در Linux

دایرکتوری بزرگ

شاید پاک کردن سریع یک دایرکتوری بزرگ با هزاران فایل داخلش، با دستورات رایج‌ و معمول خط فرمان ( مثل rm ) به راحتی امکان پذیر نباشه و باید زمان زیادی رو براش صرف کنید.

تمپ فایل ها، فایل های کش وب سرور یا کش سرور، لاگ ها و… از جمله پوشه هایی هستند که ممکن است حجم و تعداد فایل های بسیار زیادی داشته باشند.

برای این کار چند روش وجود داره که دو تا از اونها رو با هم مرور می کنیم :

روش اول:

استفاده از نرم افزار rsync: ابتدا یک پوشه خالی با دستور mkdir می سازیم:

# mkdir khali

برای مثال پوشه ای که می خوایم پاک کنیم اسمش my-folder هست رو با دستور زیر تمامی فایل های داخلش و پاک می کنیم:

“اول اسم دایرکتوری خالی، بعد دایرکتوری مورد نظر”

# rsync -a --delete khali/    my-folder/
روش دوم:

استفاده از perl هست: ابتدا وارد پوشه مورد نظر می شیم،

# cd /my-folder

بعد دستور زیر رو اجرا می کنیم:

# perl -e 'for(<*>){((stat)[9]<(unlink))}'

perl به مراتب سریع تر از rsync است. در جدول زیر چند روش مختلف با مدت زمان مورد نیاز نشان داده شده است.

دقت داشته باشید قبل از اینکه این دستورات رو روی سرور اصلیتون اجرا کنید، حتما روی یک سیستم تستی اجرا کنید تا اطلاعات حساستون رو به صورت اتفاقی حذف نکنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *