۱۳۹۵ شهریور ۲۰, شنبه

آموزش حذف فایل های یک پوشه در لینوکس

به عنوان یک کاربر لینوکس، گاهی ممکن است نیاز داشته باشید تمام فایل های موجود در یک دایرکتوری بجز یک فایل را حذف کنید . در این مقاله ۴ روش چهار روش برای انجام این عملیات آموزش داده خواهد شد :
  • استفاده از دستور shopt برای گسترش پوسته لینوکس
اگر قبلا از این دستور استفاده کرده اید، باید بدانید که عملکرد این دستور مشابه با دستور “Set” در پوسته لینوکس است. شما می توانید برای سفارشی کردن محیط در حال اجرای پوسته و یا تغییر مقادیر متغیرهای کنترل کننده رفتار پوسته ی دلخواه از این دستور استفاده کنید :
#shop -s extglob
در مثال زیر تمام فایل ها بجز فایل های با پسوند “*.gz” حذف خواهد شد:
[root@devops work]# for i in `seq 10`;do  touch file$i; done
 [root@devops work]# ls
 file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
 [root@devops work]# tar -zcvf file1.gz file1
 file1
 [root@devops work]# ls
 file1  file10  file1.gz  file2  file3  file4  file5  file6  file7  file8  file9
 [root@devops work]# shopt -s extglob
 [root@devops work]# rm -r !(*.gz)
 rm: remove regular empty file `file1'? ^C
 [root@devops work]# rm -rf !(*.gz)
 [root@devops work]# ls
 file1.gz

آموزش حذف فایل های یک پوشه در لینوکس

  • استفاده از دستورهای Grep  و Xargs 
با اجرای  دستور grep با گزینه “-v” میتوانید تمام فایل ها را به جز فایل های الگو داده شده ، جستجو کرده و سپس تمام فایل ها را با استفاده از دستور rm حذف کنید.
[root@devops work]# for i in `seq 10`;do  touch file$i; done
 [root@devops work]# ls
 file1  file10  file1.gz  file2  file3  file4  file5  file6  file7  file8  file9
 [root@devops work]# ls | grep -v '.gz' | xargs rm -rf
 [root@devops work]# ls
 file1.gz
  • استفاده از دستور Grep  و rm

در این روش برای حذف تمام فایل ها به جز بعضی فایل های خاص از backquote و دستور grep با گزینه –v استفاده خواهد شد.
[root@devops work]# for i in `seq 10`;do  touch file$i; done
 [root@devops work]# ls
 file1  file10  file1.gz  file2  file3  file4  file5  file6  file7  file8  file9
 [root@devops work]# rm `ls | grep -v '.gz'`
 [root@devops work]# ls
 file1.gz
  • استفاده از دستور find برای حذف تمام فایل ها بجز فایل های *.gz
می دانید که find یک دستور بسیار قوی و مفید با option های زیاد است ، از این دستور می توان برای حذف فایل ها و یا حذف تمام فایل ها بجز فایل های خاص استفاده کرد.
[root@devops work]# for i in `seq 10`;do  touch file$i; done
 [root@devops work]# ls
 file1  file10  file1.gz  file2  file3  file4  file5  file6  file7  file8  file9
 [root@devops work]# find ./ -type f -not -name '*.gz' -delete
 [root@devops work]# ls
 file1.gz

هیچ نظری موجود نیست:

ارسال یک نظر