Vamos dizer que eu tenho 20 arquivos chamados FOOXX, onde XX é o número do arquivo, por exemplo, 01, 02 etc.
No momento, se eu quiser apagar todos os arquivos menores que o número 10, isso é fácil e eu uso apenas um caractere curinga, por exemplo rm FOO0 *
No entanto, se eu quiser excluir arquivos específicos em um intervalo, por exemplo, 13-15, isso se torna mais difícil.
rm FPP [13-15] não funciona e me pergunta se desejo excluir todos os arquivos. O Likewse rm FOO1 [3-5] deseja deletar todos os arquivos que começam com FOO1
Então, qual é a melhor maneira de excluir intervalos de arquivos como este?
Eu tentei com bash e zsh, e eu não acho que eles diferem tanto para uma tarefa tão básica?
Respostas:
No bash você pode usar:
ou
para excluir FOO13, FOO14 e FOO15.
Bash expansões brace estão documentados Aqui .
fonte
rm FOO{13..15}
.bash
Comandos formam subconjunto dez
comandos de shell.Para futuros leitores, o
find
comando também pode excluir arquivos. Eu resolvi isso para um problema semelhante:mas a resposta escolhida é a resposta mais simples para essa pergunta.
fonte
find . -name "*.o" -delete
e funcionou perfeitamente)ls | grep regex | xargs rm
fonte
find -regex ... -print0 | xargs -0 ...
para isso, caso contrário, ele falhará para nomes de arquivos com espaços.find
então você pode também apenas usar-exec
.