Não está claro --- sob o diretório dir_a você pode ter apenas um diretório chamado Debug . Ou você está dizendo que tem dir_a/Debug , dir_a/dir_b/Debug , dir_a/dir_c/Debug e assim por diante?
Você pode listar todos os diretórios nomeados exatamente Debug no diretório dir_a com:
cd dir_a # or whatever you need to go there
find . -type d -name Debug
isso listará todos os diretórios denominados Debug no diretório atual. Para apagá-los (verifique, NÃO É DIVERTIDO ):
find . -depth -type d -name Debug -exec rm -r {} \;
-depth listará Debug/Debug/ antes de Debug/ para evitar erros.
Em detalhes:
-
find . -type d -name Debugpesquisará todos os diretórios sob o atual (.) para entradas que são ambos diretório (-type d) e possuem o nome "Debug" (-name Debug). -
A
-depthflag adicionada faz a profundidade da pesquisa primeiro (significa que as correspondências "mais profundas" são encontradas antes das "rasas"). -
-exec ... \;informafindpara executar o comando em...para cada correspondência. (O ponto-e-vírgula é citado porque senão o shell irá interpretá-lo). -
No comando
...acima, o símbolo especial{}é substituído pela correspondência atual.
Então, em inglês simples, é: encontre todos os diretórios sob este nome cujo nome é "Debug", profundidade primeiro, e para cada um execute o comando rm -r seguido pelo nome completo do diretório.