Saturday 22 November 2014 ساعت 12:35 PM
شاید برای شما نیز این موضوع پیش آمده باشد که بخواهید تمام فایلها با یک پسوند خاص را در سرور حذف کنید . با توجه به این که دستور rm قابلیت search ندارد نمی توان از این دستور استفاده نمود.
جهت انجام این کار می توانید از دستور زیر استفاده نمایید.
[dir=ltr]find . -name "FILE-TO-FIND"-exec rm -rf {} \;[/dir]
و یا از دستور زیر استفاده نمایید.
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 {} \;