Rm recursivo com condição no Linux

2

Eu tenho a seguinte estrutura de pastas:

parent
 - folder1
   - main1.x
   - main1.y
   - main1.z
   - main1-626262.x
   - main1-626263.x
   - main1-626264.x
   - main1-626265.x
   - main1-626266.x
   - main1-626267.x
 - folder2
   - main2.x
   - main2.y
   - main2.z
   - main2-726262.x
   - main2-726263.x
   - main2-726264.x
   - main2-726265.x
   - main2-726266.x
   - main2-726267.x

Agora, desejo remover: main-*********.x

Então, minha estrutura de pastas obrigatória:

parent
 - folder1
   - main1.x
   - main1.y
   - main1.z
 - folder2
   - main2.x
   - main2.y
   - main2.z

Então, como posso conseguir isso?

    
por zengr 13.03.2011 / 06:54

3 respostas

6

Tente isto:

find * -name 'main?-*.x' | xargs echo rm -rf

O texto acima mostra um comando que remove os diretórios indesejados ( sem , na verdade, removendo-os). Se parece OK, basta executar o comando impresso ou executar

find * -name 'main?-*.x' | xargs rm -rf
    
por 13.03.2011 / 07:01
2

Comando simples:

rm 'find ./ -name 'main?-*.x'' -rf

Boa sorte!

    
por 20.11.2011 / 08:31
1
rm */*[0-9][0-9][0-9][0-9][0-9][0-9].*

Mas precisa de um golpe ou sh para avaliar. Não sei sobre o C-Shell, se não funcionar, alguma sintaxe semelhante estará disponível.

    
por 13.03.2011 / 07:13