rm -rf top/?/Output/platform
ou, se o diretório de segundo nível puder ser mais de um caractere (A, B ou C no seu exemplo):
rm -rf top/*/Output/platform
Eu tenho um diretório cheio de vários outros diretórios com a mesma estrutura, então parece com isso
top/A/Output/platform/..
top/B/Output/platform/..
top/C/Output/platform/..
e assim por diante. Eu quero, a partir do nível top
, excluir todos os diretórios para baixo dos diretórios platform
, de tal forma que acabo com
top/A/Output
top/B/Output
top/C/Output
Alguém pode me recomendar um comando para isso? Eu estou no rhel7 com bash 4.1.2
EDITAR:
Eu tenho um monte de diretórios de 'segundo nível' cujos nomes são mais complexos do que letras únicas, desculpe deveria ter notado que mais explicitamente
rm -rf top/?/Output/platform
ou, se o diretório de segundo nível puder ser mais de um caractere (A, B ou C no seu exemplo):
rm -rf top/*/Output/platform
Veja man find
para mais opções, como padrões de regex:
find top -type d -name platform -print0 | xargs -0 rm -rf
Você pode usar desta forma:
find top -path 'top/*/Output/platform' -delete
Observe que isso excluirá arquivos e diretórios que começam com um ponto.
O comando a seguir não exclui arquivos e diretórios que começam com um ponto, porque o shell os ignorará quando substituir as estrelas:
rm top/*/Output/platform