Linux lame-覆盖现有文件

Linux lame-覆盖现有文件,linux,bash,mp3,overwrite,lame,Linux,Bash,Mp3,Overwrite,Lame,我正在尝试使用bash中的lame命令将一堆CBR 320 Kbps Mp3转换为VBR 0(最高质量)。然而,lame似乎无法覆盖现有文件。这样做会快得多,因为我可以使用通配符在一个唯一的短终端命令上完成,而且我不必删除旧文件并重命名新文件 我尝试的是: lame -h -V 0 *.mp3 但我收到以下错误消息: lame:超出参数%filename%.mp3 另外,如果我尝试单个文件 lame -h -V 0 %filename%.mp3 %filename%.mp3 我得到: 输入文

我正在尝试使用bash中的lame命令将一堆CBR 320 Kbps Mp3转换为VBR 0(最高质量)。然而,lame似乎无法覆盖现有文件。这样做会快得多,因为我可以使用通配符在一个唯一的短终端命令上完成,而且我不必删除旧文件并重命名新文件

我尝试的是:

lame -h -V 0 *.mp3
但我收到以下错误消息:

lame:超出参数%filename%.mp3

另外,如果我尝试单个文件

lame -h -V 0 %filename%.mp3 %filename%.mp3
我得到:

输入文件和输出文件是相同的。中止


在命令帮助中,没有提到强制、覆盖或其他选项。我在互联网和堆栈溢出上搜索,也没有找到任何东西。有人能帮我吗?

lame就是不支持这个。很少有命令能做到这一点

相反,Unix的理念是不要求每个程序都支持每种可能的调用模式,而是允许用户组合命令来执行他们想要的操作:

for f in *.mp3; do lame -h -V 0 "$f" tmp && mv tmp "$f"; done
如果这是您经常做的事情(尽管我希望不是,因为转码对质量有害),您可以在
中为其创建自己的快捷方式。bashrc

superlame() { for f; do lame -h -V 0 "$f" tmp && mv tmp "$f"; done; } 

从那时起,你可以简单地
superame*.mp3

你就是天才。