Так что я продолжал играть с этим сценарием, и мне казалось, что я целился в движущуюся цель. Я не очень внимательно следил за своими изменениями и за тем -, так что, возможно, были другие проблемы.
Тем не менее, я думаю, что исправил свой скрипт, чтобы он работал правильно.
Цель этого скрипта — взять произвольный исходный каталог, содержащий файлы *.flac и *.jpg, создать идентичную структуру каталогов в месте назначения, а затем повторно -закодировать все файлы *.flac в этом источнике и запишите *.mp3 в целевом каталоге. Наконец, скопируйте все *.jpg (обложки )из исходного каталога в соответствующий целевой каталог. Максимально используйте параллели GNU.
TL;DR -Преобразование дерева каталогов FLAC в дерево каталогов MP3 с помощью parallel.
Вот что я наконец придумал
#!/bin/sh
SOURCE=$1
DEST=$2
find $SOURCE -type f -name '*.flac' -printf "%h\n" | uniq | parallel --dry-run mkdir -p {=s:$SOURCE:$DEST:g=}
find $SOURCE -type f -name '*.flac' -printf "%P\n" | parallel --dry-run ffmpeg -loglevel info -i $SOURCE{} -codec:a libmp3lame -qscale:a 3 $DEST{.}.mp3
find $SOURCE -type f -name '*.jpg' -printf "%P\n" | parallel --dry-run cp $SOURCE{} $DEST{}
Кажется, это работает, по крайней мере, для --сухого -вывода, как указано выше. Не стесняйтесь (повторно -)использовать это.
Возможно, вы можете использовать LinuxCNC . Это с открытым исходным кодом
LinuxCNC управляет станками с ЧПУ. Он может управлять фрезерными станками, токарными станками, 3D-принтерами, лазерными и плазменными резаками, роботами-манипуляторами, гексаподами и многим другим.
Работает под Linux (опционально с расширениями реального времени ).
Простая установка в Debian и Ubuntu или с помощью образов Live/Install DVD/USB.
Принимает ввод кода G -, в ответ управляет станками с ЧПУ.
Активное сообщество пользователей.
Доступно несколько различных графических интерфейсов.
Совместим со многими популярными аппаратными интерфейсами управления машиной.
Поддерживает жесткое нарезание резьбы метчиком, компенсацию режущего инструмента и многие другие расширенные функции управления.
Полный исходный код доступен на условиях GNU GPLv2 (Стандартной общественной лицензии версии 2).
Выполните установку здесь и прочитайте документацию для текущей версии LinuxCNC версии 2.8: