{}
- полное имя файла, найденное find
, включая расширение .flac
. Чтобы манипулировать им, вы можете вызвать оболочку в -exec
:
find . -name '*.flac' \
-exec bash -c '
for f; do
ffmpeg -i "$f" -vsync 0 -codec:a libmp3lame -qscale:a 0 \
-map_metadata 0 -id3v2_version 3 "${f%.flac}".mp3
done
' _ {} +
Используется синтаксис -exec <cmd> {} +
для запуска <cmd>
один раз 1 со всеми добавленными файлами; сама команда имеет вид
bash -c 'for f; do <something>; done' _
где for f
перебирает все файлы, представленные в качестве параметров; _
- это фиктивный параметр, который будет использоваться как $0
в bash -c
.
1 Точнее, «как можно меньше раз при соблюдении ограничений длины командной строки».