alexkuklin: (Default)
alexkuklin ([personal profile] alexkuklin) wrote2008-05-02 12:43 am

(no subject)

Объясните идиоту, почему конструкция


find -type f -iname "*.flac" | while read f; do name=`basename "$f" .flac`; dir=`dirname "$f"`; echo $name; ( [ ! -f "mp3/$name.mp3" ] && ffmpeg -ab 128k -i "$f" "mp3/$name.mp3" 2> /dev/null || true); done


выполняет только один раз ffmpeg, потом вылетает?
sanmai: (Default)

[personal profile] sanmai 2008-05-02 12:09 am (UTC)(link)
Вылетает без ошибок?

[identity profile] alexkuklin.livejournal.com 2008-05-02 10:59 am (UTC)(link)
угу.
изначально было

find -type f -iname "*.flac" | while read f; do
name=`basename "$f" .flac`;
dir=`dirname "$f"`;
echo $name;
ffmpeg -ab 128k -i "$f" "mp3/$name.mp3" 2> /dev/null
done


эффект тот же.

если приведенную первой строчку завернуть во внешний цикл, то не вылетает. ЧЯДНТ?
sanmai: (Default)

[personal profile] sanmai 2008-05-02 12:57 pm (UTC)(link)
А если перед ffmpeg написать echo, то будет работать?
arilou: (Default)

[personal profile] arilou 2008-05-02 01:21 pm (UTC)(link)
А как выглядит тот внешний цикл, который всё лечит?

Кстати, попутно (не по вопросу поста), если ты используешь -iname, то, наверное, опасаешься, что где-то расширение окажется .FLAC? а при вызове basename уже не опасаешься?

[identity profile] tarkhil.livejournal.com 2008-05-02 05:04 am (UTC)(link)
"Так зачем, говоришь, ты написал эти иероглифы"?

[identity profile] alexkuklin.livejournal.com 2008-05-02 10:56 am (UTC)(link)
Перекодировать .flac в .mp3 для прослушивания в машине