lame - 覆盖现有文件

时间:2013-12-27 20:23:42

标签: linux bash mp3 overwrite lame

我尝试使用bash中的lame命令将一堆CBR 320 Kbps Mp3转换为VBR 0(最高质量)。但是,似乎跛脚不能覆盖现有文件。这样会快得多,因为我可以使用通配符在一个独特的短终端命令上执行它,而且我不必删除旧文件并重命名新文件。

我尝试的是:

lame -h -V 0 *.mp3

但是我收到以下错误消息:

  

lame:多余的arg%filename%.mp3

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

lame -h -V 0 %filename%.mp3 %filename%.mp3

我明白了:

  

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

在命令帮助中,没有提到强制,覆盖或其他任何选项。我在互联网和Stack Overflow上搜索过,也没发现任何内容。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

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; } 

从那时起,您可以简单地superlame *.mp3