Estoy tratando de convertir automáticamente archivos FLAC movidos a una carpeta en mp3 en otra carpeta.
Mi línea actual de código es 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 cómo funciona esto hasta ahora, inotifywait monitorea ~ / prueba de forma recursiva para archivos movidos allí, enviando la ruta y el nombre de archivo a una tubería. xargs toma ese nombre y crea el comando flac adecuado, reemplazando x con el nombre del archivo y decodificando el archivo en otra tubería. En el nuevo pipe lame procesa la salida de flac en mp3 bajo / media. Quiero que xargs llegue a través de la tubería de alguna manera, reemplazando la x en el comando lame o de alguna manera la envíe a una variable a la que ambos comandos puedan acceder o algo así. Traté de jugar con las canalizaciones con nombre y ese jazz, pero el hecho de que haya datos reales que se canalizan entre los dos comandos me ha dejado muy en claro.

while read …Es una solución, pero luego, soltarxargs. Lo que escribiste simplemente no tiene sentido: ¿dónde crees quexargsestá obteniendo su entrada? Y debe citar las cosas correctamente, es común que los nombres de archivos de música contengan espacios.