2

我有一个脚本,它在 torrent 下载完成时运行,以查看是否有 FLAC 音频文件,如果有,将它们转换为 MP3。直到今天我一直使用:

for file in "$torrentpath"/"$torrentname"/*.flac
do
    ffmpeg -i "$file" -qscale:a 0 "${file[@]/%flac/mp3}"

done

但我意识到,当一个包含子目录的种子出现时,该脚本是无用的。在过去的几天里,我尝试过用“find”和“if”和其他方式来搞乱,但我真的看不到答案。我知道它在那里。

该脚本应该只测试是否有子目录并在这些子目录上执行 ffmpeg,否则直接进行转换。

任何小提示将不胜感激。

4

2 回答 2

3

处理 bash 中的任意子目录:

shopt -s globstar nullglob
for file in "$torrentpath/$torrentname"/**/*.flac
do ...
于 2013-11-14T20:31:34.877 回答
0
find "$torrentpath"/"$torrentname" -name '*.flac' -print | while read file; do
    ffmpeg -i "$file" -qscale:a 0 "${file[@]/%flac/mp3}"
done
于 2013-11-14T20:41:31.100 回答