Como remover vários arquivos no linux? [duplicado]

0

Meu post de pré-visualização é sobre a remoção do arquivo de nome único no sistema, mas eu realmente preciso remover uma grande variedade de arquivos.

postagem anterior

Como remover arquivos em pastas diferentes via terminal?

Por exemplo

Eles são junkImg-5.png a junkImg-60.png , o que significa que há junkImg-30 , junkImg-45 ... etc.

Existe algum comando rápido para removê-los na linha de comando?

Eu tentei

find /project/test/ -name 'junkImg-5*' -exec rm -f {} \ ;

mas é muito lento e tenho muitas imagens. Existe uma maneira que o Linux pode especificar o intervalo? Muito obrigado!

    
por FlyingCat 22.05.2013 / 19:30

3 respostas

6

Basta usar a expansão de chaves para excluir o intervalo de arquivos:

rm /project/test/junkImg-{5..60}.png

Isso removerá os arquivos junkImg de 5 a 60, com apenas um processo rm . Você também pode substituir primeiro o comando rm por ls para ter certeza de que está selecionando os arquivos desejados e, em seguida, substitua-o novamente por rm .

    
por 22.05.2013 / 20:22
2

A pesquisa usa Correspondência de padrões da Shell para os -name , para que você possa usar o predicado -ou e estes padrões:

find DIRECTORY -name 'junkImg-[5-9].png' -or -name 'junkImg-[1-6]?.png' -delete

Você também pode excluir os primeiros quatro arquivos usando o predicado -not :

find DIRECTORY -name 'junkImg-*.png' -not -name 'junkImg-[1-4].png' -delete

Para testar se os comandos funcionam corretamente, execute-os sempre sem -delete primeiro. Isso listará os arquivos em vez de removê-los.

    
por 22.05.2013 / 20:16
1

Você está iniciando um novo comando rm para cada exclusão. Esse não é o caminho mais rápido. Você só precisa fazer isso se tiver tantos arquivos que não pode listá-los todos de uma só vez.

Para tornar as coisas mais rápidas:

  1. altere o -exec rm com -ls e canalize-o embora xargs. Adicione um -print0 se você espera que alguns dos nomes de arquivos sejam difíceis (por exemplo, tenha um espaço neles).
  2. Ou melhor, use as descobertas construídas em -delete .
por 22.05.2013 / 19:44