Использование рекурсии с командным циклом. Какой синтаксис?

Я использую следующий цикл для перекодировки .flac -> .mp3:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done

Каталог, конечно, должен содержать файлы .flac, чтобы это работало. То, что я хотел бы научить, это синтаксис, чтобы заставить эту команду работать рекурсивно. Цель состоит в том, чтобы перейти в каталог, содержащий все подкаталоги файлов .flac, и выполнить командный цикл через них все.

Большое спасибо заранее.

1
задан 27 March 2011 в 12:42

1 ответ

Создайте файл ~ / bin / flac2mp3 с содержимым:

#!/bin/bash
file="$1"
flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"

Затем запустите find . -name '*.flac' -exec ~/bin/flac2mp3 '{}' \;

Это можно сделать без использования отдельного файла для ~/bin/flac2mp3, но я думаю, что использование отдельного файла проще и понятнее.

0
ответ дан 27 March 2011 в 12:42

Другие вопросы по тегам:

Похожие вопросы: