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 quexargs
está obteniendo su entrada? Y debe citar las cosas correctamente, es común que los nombres de archivos de música contengan espacios.