Estou tentando converter automaticamente arquivos flac movidos para uma pasta em mp3 em outra pasta.
Minha linha de código atual é esta:
inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3
Para explicar como isso funciona até agora, o inotifywait monitora ~ / test recursivamente os arquivos movidos para lá, produzindo o caminho e o nome do arquivo em um canal. xargs leva esse nome e cria o comando flac adequado, substituindo x pelo nome do arquivo e decodificando o arquivo para outro canal. No novo pipe lame processa a saída do flac para mp3 em / media. Quero que os xargs alcancem o canal de alguma forma, substituindo o x no comando lame ou, de alguma forma, enviem para uma variável que ambos os comandos possam acessar ou algo assim. Eu tentei mexer com pipes nomeados e esse jazz, mas o fato de que existem dados reais sendo canalizados entre os dois comandos me deixa muito irritado.
while read …
é uma solução, mas depois soltexargs
. O que você escreveu simplesmente não faz sentido: de onde você acha quexargs
está recebendo sua contribuição? E você deve citar as coisas corretamente, é comum que os nomes dos arquivos de música contenham espaços.