Como usar rm com nome de arquivo condicional

1

Eu tenho uma pasta com milhares de subpastas nomeadas numericamente (de 1 a 200000)

Eu gostaria de deletar todas as pastas (e arquivos dentro delas) que são nomeadas 100000 +

Existe uma maneira de fazer isso a partir de uma linha de comando do Linux?

    
por emkay 14.09.2014 / 21:37

2 respostas

1

Existem várias maneiras de fazer isso, mas a mais simples é provavelmente:

rm -r [1-2][0-9][0-9][0-9][0-9][0-9]

Aconselho você a colocar um echo na frente do rm primeiro, apenas para ter certeza de encontrar os diretórios que deseja remover.

É possível que você fique sem memória para a linha de comando, caso em que você pode precisar usar:

for f in [1-2][0-9][0-9][0-9][0-9][0-9]; do rm -r $f; done
    
por 14.09.2014 / 22:13
3

Sim, assumindo um shell POSIX, use a correspondência de padrões de shell:

rm -rf *???????

nesse diretório. Note que isto corresponde a qualquer arquivo ou subdiretório com 7 ou mais caracteres, então tenha cuidado!

    
por 14.09.2014 / 22:05