Isso depende do shell que você preferir usar.
Se você estiver usando o cmd shell no Windows, o seguinte deverá funcionar:
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"
Se você estiver usando um shell do tipo bash ou zsh (como git bash ou babun no Windows ou na maioria dos shells Linux / OS X), esta é uma maneira muito mais agradável e sucinta de fazer o que você deseja:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
e isso pode ser reduzido a uma linha com um OR:
find . -iname "bin" -o -iname "obj" | xargs rm -rf
Observe que, se seus diretórios de nomes de arquivos contiverem espaços ou aspas, o find enviará essas entradas como estão, que xargs podem dividir em várias entradas. Se o seu shell os suportar, -print0
e -0
contornar essa falha, os exemplos acima se tornarão:
find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf
e:
find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf
Se você estiver usando o Powershell, poderá usar o seguinte:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
como visto na resposta de Robert H abaixo - apenas certifique-se de dar crédito a ele pela resposta do PowerShell, e não por mim, se você escolher votar novamente qualquer coisa :)
É claro que seria sensato executar qualquer comando que você escolher em algum lugar seguro primeiro para testá-lo!