حذف فایلهایی با نام های خاص در لینوکس
شاید برای شما نیز این موضوع پیش آمده باشد که بخواهید تمام فایلها با یک پسوند خاص را در سرور حذف کنید . با توجه به این که دستور rm قابلیت search ندارد نمی توان از این دستور استفاده نمود.
جهت انجام این کار می توانید از دستور زیر استفاده نمایید.
find . -name “FILE-TO-FIND”-exec rm -rf {} \;
و یا از دستور زیر استفاده نمایید.
find . -type f -name “FILE-TO-FIND” -exec rm -f {} \;
تفاوت 2 دستور بالا در این است که در دستور اول علاوه بر فایلها ، فولدرهایی را هم ویژگی ذکر شده در دستور را دارند حذف خواهد کرد.ولی در دستور دوم فقط فایلها حذف خواهند شد.
مثال اول : در این دستور تمام فایل ها را در شاخه کنونی و زیر شاخه های مربوطه که با پسوند .bak هستند را حذف خواهد کرد.
find . -type f -name “*.bak” -exec rm -f {} \;
مثال دوم : در این دستور تمام فایل ها و فولدرهایی را که در شاخه کنونی و زیر شاخه های مربوطه با پسوند .bak هستند را حذف خواهد کرد.
find . -name “*.bak”-exec rm -rf {} \;
مثال سوم : در این دستور تمام فایل ها را در شاخه کنونی و زیر شاخه های مربوطه که با پسوند .bak هستند را حذف خواهد کرد. با این تفاوت که قبل از حذف از شما تاییده خواهد گرفت .
find . -type f -name “*.bak” -exec rm -i {} \;
حذف پوشههای خالی در لینوکس
برای حذف پوشههایی که خالی میباشند میتوانید از یکی از دستورات زیر استفاده نمایید:
rmdir **/*(/^F)
find . -type d -empty -delete
$ find . -depth -type d -exec rmdir {} \; 2>/dev/null