Есть ли способ быстро изменить все расширения файлов всех файлов в папке?

11

У меня есть большая папка аудио-книг .m4b, которые в их текущем формате не будут воспроизводиться на моем телефоне Android. Однако они отлично работают, если они переименованы в .m4a

Есть ли быстрый способ или команда терминала, которая может переименовать каждый файл .m4b в папку на .m4a? Нет необходимости в каком-либо преобразовании файлов, просто переименование расширения файла работает отлично.

    
задан coversnail 22.05.2012 в 07:47
источник

2 ответа

14

Это сделает вашу работу.

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

Для тестового прогона вы можете использовать эту команду:

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

-v означает «verbose», и он будет выводить имена файлов при их переименовании.

-n выполнит пробный запуск, где он не переименует никаких файлов, но покажет вам список файлов, которые будут переименованы.

    
ответ дан Basharat Sialvi 22.05.2012 в 08:09
источник
8

Очень быстрый способ переименования файлов, если это все, что вам нужно сделать, и не нужно преобразовывать их в другой формат, заключается в использовании расширений параметров Bash, которые очень подробно описаны в Bash wiki .

Существует несколько различных способов изменения расширения, но я использую здесь простую парадигму ${var/original/replacement} :

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

Если вы хотите увидеть, что будет изменено командой, поместите echo до mv и изменения будут перечислены.

Излишне говорить, что этот oneliner также может быть изменен для других файлов, и вы также можете использовать расширения параметров для удаления расширений файлов.

    
ответ дан user76204 16.08.2013 в 21:23