Я пытаюсь автоматически конвертировать файлы flac, перемещенные в папку, в mp3 в другую папку.
Моя текущая строка кода такова:
inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3
Чтобы объяснить, как это работает до сих пор, inotifywait рекурсивно отслеживает ~ / test для перемещаемых туда файлов, выводя путь и имя файла в канал. xargs берет это имя и создает правильную команду flac, заменяя x именем файла и декодируя файл в другой канал. В новой трубе lame обрабатывает вывод flac в mp3 в / media. Я хочу, чтобы xargs либо каким-то образом достигал канала, заменяя x в команде lame, либо каким-то образом отправлял ее переменной, к которой обе команды могут получить доступ, или что-то еще. Я попытался поиграться с именованными каналами и этим джазом, но тот факт, что между двумя командами передаются реальные данные, заставляет меня задуматься.
while read …
это решение, но затем, капляxargs
. То, что вы написали, просто не имеет смысла: как вы думаете, откуда беретсяxargs
его вклад? И вы должны правильно цитировать вещи, обычно имена музыкальных файлов содержат пробелы.