Tenho muitos arquivos nomeados
sequence_1_0001.jpg
sequence_1_0002.jpg
sequence_1_0003.jpg
...
e arquivos chamados
sequence_1_0001.hmf
sequence_1_0002.hmf
sequence_1_0003.hmf
...
e arquivos chamados
sequence_2_0001.jpg
sequence_2_0002.jpg
sequence_2_0003.jpg
...
e
sequence_2_0001.hmf
sequence_2_0002.hmf
sequence_2_0003.hmf
...
Eu só quero remover os arquivos que começam com 'sequence_1' e terminam em '.hmf', mas não quero removê-los um por um, pois existem milhares de arquivos. Como posso especificar para o comando rm que desejo remover tudo o que começa com o prefilx 'sequence_1' e termina em '.hmf'?
Atualmente, estou trabalhando com um sistema RedHat Linux, mas gostaria de saber como fazer isso em outras distribuições também.
find
abordagem se torne mais fácil do que adivinhar e checar.Embora a resposta de jw013 seja correta, este comando pode falhar se você tiver milhares de correspondências: a linha de comando expandida
rm sequence_1_0001.hmf sequence_1_0002.hmf ...
gerada pelo shell pode ser simplesmente muito grande.Como sugerido pelo Dom, você também pode usar a
-delete
opção comfind
:Ambos
-maxdepth
e-delete
, embora não estejam no padrão POSIX, são bastante comuns emfind
implementações na natureza. As distribuições Linux geralmente usam o GNUfind
, que certamente suporta essas opções.fonte
-delete
deve ser suportado em sistemas GNU e BSD recentes, enquanto-print0
é apenas GNU. Portanto, provavelmente também é mais portátil (embora não deva fazer diferença para o OP).também funcionaria no Bash.
fonte
bash
, e o formulário preenchido com zero precisa da versão 4, acredito.