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 Debug
pesquisará 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
-depth
flag adicionada faz a profundidade da pesquisa primeiro (significa que as correspondências "mais profundas" são encontradas antes das "rasas"). -
-exec ... \;
informafind
para 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.