Encontre um arquivo que comece com uma string, mas com uma extensão específica

2

Não funciona se eu fizer isso:

string*.extension

Como faço isso?

Eu quero renomear um arquivo que tenha um começo específico, mas é completamente aleatório depois disso, mas tem uma extensão específica.

    
por timramich 03.05.2016 / 03:13

1 resposta

2

Você pode usar find , pesquisando recursivamente a partir do diretório atual:

find . -type f -name 'start*.ext' -exec mv -i {} foobar.txt \;

Supondo que o nome do arquivo comece com start e tenha uma extensão .ext , renomeie o arquivo para foobar.txt . Substitua-os para atender sua necessidade.

Pesquisando não recursivamente:

find . -maxdepth 1 -type f -name 'start*.ext' -exec mv -i {} foobar.txt \;

Note que, para renomear um monte de arquivos para padrões específicos, a abordagem será diferente; O procedimento acima é para encontrar-renomear um único arquivo para algo fixo como você mencionou na pergunta.

Como você quer apenas renomear o arquivo, você pode usar rename ( prename ) também:

rename -n 's/^start.*?\.ext$/foobar.txt/' *.*

-n fará a execução a seco, para executar a ação real remover -n :

rename 's/^start.*?\.ext$/foobar.txt/' *.*
    
por heemayl 03.05.2016 / 03:20