Existe uma maneira de alterar rapidamente todas as extensões de arquivos de todos os arquivos em uma pasta?

12

Eu tenho uma grande pasta de livros de áudio .m4b que, no formato atual, não são reproduzidos no meu telefone Android. No entanto, eles funcionam bem se forem renomeados para .m4a

Existe um método rápido ou comando terminal que pode renomear cada arquivo .m4b em uma pasta para .m4a? Não há necessidade de qualquer conversão dos arquivos, simplesmente renomear a extensão do arquivo funciona perfeitamente.

    
por coversnail 22.05.2012 / 07:47

2 respostas

15

Isso fará o trabalho para você.

rename 's/.m4b$/.m4a/' *.m4b

Para um teste, você pode usar este comando:

rename 's/.m4b$/.m4a/' *.m4b -vn

-v significa "verbose" e emitirá os nomes dos arquivos quando eles forem renomeados.

-n fará um teste onde não renomeará nenhum arquivo, mas mostrará uma lista de arquivos que serão renomeados.

    
por Basharat Sialvi 22.05.2012 / 08:09
8

Uma forma muito rápida de renomear arquivos, se tudo que você precisa fazer e não precisar convertê-los em outro formato, é usar as expansões de parâmetros do Bash, que são detalhadas muito bem em o wiki do Bash .

Existem várias maneiras diferentes de alterar a extensão, mas eu uso aqui o paradigma simples ${var/original/replacement} :

for file in *.m4b; do mv -- "${file}" "${file/%m4b/m4a}"; done

Se você quiser ver o que seria alterado pelo comando, coloque echo antes de mv e as alterações serão listadas.

Escusado será dizer que este oneliner pode ser modificado para outros arquivos também, e você também pode usar expansões de parâmetros para remover extensões de arquivo também.

    
por user76204 16.08.2013 / 21:23