Использование рекурсии с помощью командного цикла. Что такое синтаксис?

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

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

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

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

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

8 ответов

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

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

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

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

2
ответ дан 25 May 2018 в 22:22
  • 1
    Спасибо. Работает в обаянии. Я бы никогда не справился с этим сам. Я могу просто добавить (для тех, кто приземляется здесь через Google), что файл flac2mp3 должен быть выполнен исполняемым путем выполнения $ chmod + x flac2mp3. Это действительно сделало мой день и, возможно, даже мой год. – boehj 27 March 2011 в 15:39

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

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

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

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

2
ответ дан 25 July 2018 в 22:17

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

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

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

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

2
ответ дан 2 August 2018 в 03:45

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

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

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

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

2
ответ дан 4 August 2018 в 19:50

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

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

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

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

2
ответ дан 6 August 2018 в 03:53

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

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

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

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

2
ответ дан 7 August 2018 в 21:49

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

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

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

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

2
ответ дан 10 August 2018 в 10:04

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

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

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

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

2
ответ дан 13 August 2018 в 16:23
  • 1
    Спасибо. Работает в обаянии. Я бы никогда не справился с этим сам. Я могу просто добавить (для тех, кто приземляется здесь через Google), что файл flac2mp3 должен быть выполнен исполняемым путем выполнения $ chmod + x flac2mp3. Это действительно сделало мой день и, возможно, даже мой год. – boehj 27 March 2011 в 15:39