Eu tenho uma pasta grande de livros de áudio .m4b que, no formato atual, não é reproduzido no meu telefone Android. No entanto, eles funcionam bem se forem renomeados para .m4a
Existe um método rápido ou comando de terminal que pode renomear todos os arquivos .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 bem.
command-line
nautilus
file-format
cobertura
fonte
fonte
rename
é um script PERL e aceita expressões regulares. Os sistemas Debian também têm umrename.ul
comando como parte doutil-linux-ng package
. Se o perl não está instalado (ok, altamente improvável;))rename
também não está.Respostas:
Isso fará o trabalho para você.
rename 's/.m4b$/.m4a/' *.m4b
Para uma execução de teste, você pode usar este comando:
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
significa "detalhado" e exibirá os nomes dos arquivos quando os renomear.-n
fará um teste em que não renomeie nenhum arquivo, mas mostrará uma lista dos arquivos que seriam renomeados.fonte
Uma maneira muito rápida de renomear arquivos, se é tudo o que você precisa fazer e não precisa convertê-los para outro formato, é usar as expansões de parâmetros do Bash, que são detalhadas muito bem no wiki do Bash .
Existem várias maneiras diferentes de alterar a extensão, mas eu uso aqui o
${var/original/replacement}
paradigma simples :Se você quiser ver o que seria alterado pelo comando, coloque
echo
antesmv
e as alterações serão listadas.Escusado será dizer que este oneliner também pode ser modificado para outros arquivos, e você também pode usar expansões de parâmetros para remover extensões de arquivo.
fonte
*.m4b
. Caso contrário, você atingirá o erroargument list too long
.for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done