Exclui todos os arquivos cujos nomes de arquivos contêm uma string específica?

16

Eu mudei o meu tema wordpress. O mais antigo criou tantas imagens no servidor. Meu novo tema não precisa deles, então eu quero remover todos. Como posso fazer isso?

Por exemplo:
Imagem padrão: 12_angry_men_lone_holdout.jpg

Eu quero excluir:

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

Usando o Digitalocean, o Ubuntu 13.10.

    
por Ibrahim Mumcu 06.04.2014 / 00:15

4 respostas

12

Se eles estiverem na mesma pasta, use * curinga para conseguir isso:

rm *text*

Onde text é a string que o nome do arquivo contém.

    
por myhau 06.04.2014 / 00:32
19

Use find para encontrar e excluir recursivamente arquivos com "texto" em seus nomes:

find -type f -name '*text*' -delete

Você também pode querer executar find -type f -name '*text*' (sem o -delete ) antes disso para ter certeza de que não irá deletar nenhum arquivo que não tenha a intenção de deletar.

Na verdade, você pode colocar curingas em qualquer lugar da string de pesquisa, então -name '12_angry_men_lone_holdout-*.jpg' pode ser mais adequado no seu caso.

    
por n.st 06.04.2014 / 00:49
1

Tente isto:

rm -rf 12_angry_men_lone_holdout-*

Isto irá keep 12_angry_men_lone_holdout.jpg e removerá arquivos com dimensões (290x166)

E lembre-se

rm -rf 12_angry_men_lone_holdout.*

também excluirá o arquivo padrão que você precisava.

    
por Aneesh 04.09.2016 / 06:28
0
find . -type f -name '*[0-9]x[0-9]*' -delete

Execute isso no diretório pai. Isso excluirá todos os arquivos que tiverem um dígito seguido por um caractere "x" seguido por outro dígito em seu nome.

Ainda assim, tenha cuidado, isso pode excluir arquivos originais também, se o nome deles contiver o padrão acima (improvável). Execute-o primeiro sem '-delete' para ver se você possui algum arquivo com esse nome. Se for esse o caso, você só precisará encontrar um padrão mais restritivo.

    
por Tamas 06.02.2018 / 17:11