lc() { od="$1"; nd="$2"; of=$3; nf=$4; cp -rl "$od" "$nd"; parallel -0 "ffmpeg -i {1} -loglevel error -q:a 6 {1.}.{2} && { rm {1}; echo {1.}.{2}; }" :::: <(find "$nd" -type f -iname \*$of -print0) ::: "$nf"; }
Команда «lc()» – это пользовательский скрипт на Bash, который позволяет преобразовать всю аудиотеку в указанной директории в формат, заданный пользователем.
Аргументы, передаваемые команде, описывают следующее:
— «od» – исходная директория;
— «nd» – новая директория для сохранения преобразованных файлов;
— «of» – формат исходных файлов (например, mp3);
— «nf» – желаемый формат файла после преобразования (например, wav).
Сначала команда создает копию всей исходной директории в новую директорию с помощью «cp», затем используя утилиту «parallel», проходим по всем файлам формата «$of» в новой директории «$nd» и выполняем преобразование формата в формат «$nf» при помощи FFmpeg. После этого, исходные файлы удаляются, а новые, преобразованные файлы, переименовываются с добавлением расширения «$nf».
Альтернативами могут служить другие скрипты, использующие утилиты конвертации форматов (например, «sox»), но они могут не содержать таких возможностей, как параллельное выполнение заданий.