Bir klasöre taşınan flac dosyalarını otomatik olarak başka bir klasördeki mp3'e dönüştürmeye çalışıyorum.
Geçerli kod satırım şudur:
inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3
Bunun şu ana kadar nasıl çalıştığını açıklamak için, inotifywait oraya taşınan dosyaları izler ~ / sınama yolunu ve dosya adını bir boruya verir. xargs bu adı alır ve x'i dosya adıyla değiştirip dosyayı başka bir kanalda deşifre ederek uygun flac komutunu oluşturur. Yeni boru topalında flac'ın mp3 altında / medyaya çıkışı işlenir. Ben xargs ya boru bir şekilde ulaşmak, lame komutunda x yerine veya bir şekilde her iki komut erişebilir bir değişken veya bir şey göndermek istiyorum. Adlandırılmış kanallar ve bu caz ile uğraşmayı denedim, ancak iki komut arasında gerçek verilerin aktarıldığı gerçeği beni kafamın üstünde tutuyor.
while read …
bir çözümdür, ama sonra düşerxargs
. Yazdıklarınız mantıklı değil: sencexargs
girdisini nereden alıyor? Ve işleri düzgün bir şekilde alıntılamalısınız, müzik dosya adlarının boşluk içermesi yaygındır.