У меня есть большая папка аудиокниг .m4b, которые в их текущем формате не воспроизводятся на моем телефоне Android. Однако они отлично работают, если они переименованы в .m4a
Есть ли быстрый метод или команда терминала, которая может переименовать каждый файл .m4b в папке в .m4a? Нет необходимости в каком-либо преобразовании файлов, просто переименование расширения файла работает отлично.
command-line
nautilus
file-format
coversnail
источник
источник
rename
это скрипт на Perl, который принимает регулярные выражения. Системы Debian также имеютrename.ul
команду как частьutil-linux-ng package
. Если Perl не установлен (хорошо, очень маловероятно;))rename
также нет.Ответы:
Это сделает работу за вас.
rename 's/.m4b$/.m4a/' *.m4b
Для пробного запуска вы можете использовать эту команду:
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
означает «подробный», и он будет выводить имена файлов при переименовании.-n
выполнит тестовый запуск, при котором не будет переименовывать файлы, но покажет вам список файлов, которые будут переименованы.источник
Очень быстрый способ переименовать файлы, если это все, что вам нужно сделать, и не нужно преобразовывать их в другой формат, - это использовать расширения параметров Bash, которые очень подробно описаны в вики Bash .
Есть несколько разных способов изменить расширение, но я использую здесь простой
${var/original/replacement}
парадигму:Если вы хотите увидеть, что будет изменено командой, поместите
echo
перед,mv
и изменения будут перечислены.Само собой разумеется, что этот oneliner может быть изменен и для других файлов, и вы также можете использовать расширения параметров для удаления расширений файлов.
источник
*.m4b
. В противном случае вы получите ошибкуargument list too long
.for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done