ขึ้นอยู่กับเชลล์ที่คุณต้องการใช้
หากคุณใช้ cmd shell บน Windows ดังนั้นสิ่งต่อไปนี้ควรใช้งานได้:
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
หากคุณใช้ bash หรือ zsh type shell (เช่น git bash หรือ babun บน Windows หรือเชลล์ Linux / OS X ส่วนใหญ่) นี่เป็นวิธีที่ดีกว่ามากในการทำสิ่งที่คุณต้องการ:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
และสิ่งนี้สามารถลดลงเป็นหนึ่งบรรทัดด้วย OR:
find . -iname "bin" -o -iname "obj" | xargs rm -rf
โปรดทราบว่าหากไดเรกทอรีชื่อไฟล์ของคุณมีช่องว่างหรือเครื่องหมายคำพูด find จะส่งรายการเหล่านั้นตามที่เป็นอยู่ xargs ใดที่อาจแบ่งออกเป็นหลายรายการ หากเชลล์ของคุณรองรับพวกมัน-print0
และ-0
จะแก้ปัญหานี้ในระยะสั้นดังนั้นตัวอย่างข้างต้นจะกลายเป็น:
find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf
และ:
find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf
หากคุณใช้ Powershell คุณสามารถใช้สิ่งนี้:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
เท่าที่เห็นในคำตอบของ Robert H ด้านล่าง - ให้แน่ใจว่าคุณให้เครดิตเขาสำหรับคำตอบที่ดีกว่าฉันถ้าคุณเลือกที่จะโหวตอะไร :)
แน่นอนว่าควรรันคำสั่งใดก็ตามที่คุณเลือกที่ปลอดภัยก่อนเพื่อทดสอบ!