Bash: Создание копий музыкальных файлов в разных форматах и папках

#bash #ffmpeg #copy #find

Вопрос:

Я пытаюсь создать scipt bash, чтобы просто автоматизировать поиск моих файлов flac и создание их копии alac в отдельной папке. Просто чтобы у меня была моя маленькая папка itunes. Хотите автоматизировать, потому что их так много.

Поэтому я нахожу свои папки flac в папке Eminem….

 :~$ find /mnt/music/Eminem -type d -name *FLAC
    /mnt/music/Eminem/2009 Relapse FLAC
    /mnt/music/Eminem/1996 Infinite FLAC
    /mnt/music/Eminem/1999 The Slim Shady LP FLAC
    /mnt/music/Eminem/2000 Marshall Mathers LP FLAC
 

Теперь вместо того, чтобы заходить в каждую папку и конвертировать вручную, используя что-то вроде

     ffmpeg -i track.flac -acodec alac track.m4a...
 

Как мне в сценарии bash взять эти несколько папок? Создайте копию содержимого ALAC в /mnt/music/iTunes с помощью FFMpeg?

Новая папка будет…

 /mnt/music/iTunes/Eminem/2009 Relapse ALAC/track.m4a
 

Все папки flac имеют FLAC в конце в одной и той же структуре папок.

 /mnt/music/Artist/Year Album FLAC
 

Я понимаю большую часть того, как находить, копировать, преобразовывать, вручную выполнять команды терминала, но когда дело доходит до того, чтобы поместить это в сценарий bash. Я не понимаю, как я беру выходные данные каждой команды и использую их для другой. Например, список папок. Не знаю, как автоматизировать выполнение всех шагов для каждого из них.

Немного многословно, но любая помощь будет очень признательна. Даже некоторые видео, которые вы рекомендуете для изучения.

Ответ №1:

Вы ищете что-то вроде этого:

 #!/bin/sh -
cd /mnt/music
for flac in */*FLAC/*.flac; do
  alacdir=iTunes/${flac%FLAC/*}ALAC
  alac=${flac##*/} alac=$alacdir/${alac%.flac}.m4a
  echo mkdir -p "$alacdir" amp;amp;
  echo ffmpeg -i "$flac" -acodec alac "$alac"
done
 

Отбросьте echo s, если вы довольны результатом. Оставьте комментарий, если я что-то упускаю.

Комментарии:

1. Просто понял, что он не копирует обложку альбома. Есть ли что-то, что я могу добавить, чтобы убедиться, что обложка альбома будет скопирована?

2. @BrettSjoholm Я мало что знаю о ffmpeg, просто скопировал команду из вашего вопроса