Это зависит от оболочки, которую вы предпочитаете использовать.
Если вы используете оболочку cmd в 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 (например, git bash или babun в Windows или большинстве оболочек Linux / OS X), то это гораздо более приятный и лаконичный способ делать то, что вы хотите:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
и это может быть сокращено до одной строки с помощью ИЛИ:
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 }
как показано в ответе Роберта Х ниже - просто убедитесь, что вы доверяете ему ответ PowerShell, а не мне, если вы решите проголосовать за что угодно :)
Конечно, было бы разумно сначала запустить любую команду, которую вы выберете, в безопасном месте, чтобы проверить ее!
person
Steve Willcock
schedule
16.04.2009