我尝试使用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上搜索过,也没发现任何内容。有人能帮助我吗?
答案 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