To zależy od powłoki, której wolisz używać.
Jeśli używasz powłoki cmd w systemie Windows, powinny działać następujące czynności:
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"
Jeśli używasz powłoki typu bash lub zsh (takiej jak git bash lub babun w systemie Windows lub większości powłok Linux / OS X), jest to o wiele ładniejszy, bardziej zwięzły sposób na robienie tego, co chcesz:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
i można to zredukować do jednej linii za pomocą OR:
find . -iname "bin" -o -iname "obj" | xargs rm -rf
Zauważ, że jeśli twoje katalogi z nazwami plików zawierają spacje lub cudzysłowy, find wyśle te wpisy bez zmian, które xargs może podzielić na wiele wpisów. Jeśli twoja powłoka je obsługuje -print0
i -0
obejdzie to niedociągnięcie, więc powyższe przykłady stają się:
find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf
i:
find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf
Jeśli używasz programu PowerShell, możesz użyć tego:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
jak widać poniżej w odpowiedzi Roberta H. - upewnij się, że przypisujesz mu odpowiedź Powerhell, a nie mnie, jeśli zdecydujesz się głosować cokolwiek :)
Mądrze byłoby uruchomić najpierw dowolne polecenie, które wybierzesz w bezpiecznym miejscu, aby je przetestować!