我有几个 mp3,需要在扩展名前添加“_p192”。
我试过这个:
for f in *.mp3; do printf '%s\n' "${f%.mp3}_p192.mp3"; done
关注这个帖子:
但它只是将文件名打印到标准输出而不实际重命名文件。
Kus*_*nda 11
您看到的答案是针对一个不要求实际重命名磁盘上文件的问题,而只是转换终端上报告的文件名称。
这意味着如果您使用mv命令而不是printf(它只会将字符串打印到终端),您的解决方案将起作用。
for f in *.mp3; do mv -- "$f" "${f%.mp3}_p192.mp3"; done
Run Code Online (Sandbox Code Playgroud)
我仍然建议您先运行printf循环以确保名称按照您期望的方式进行转换。
通常只echo在 前面插入mv以查看将执行的内容通常是安全的(当您处理mv,cp和等潜在破坏性命令的循环时,这样做可能是个好主意rm):
for f in *.mp3; do echo mv -- "$f" "${f%.mp3}_p192.mp3"; done
Run Code Online (Sandbox Code Playgroud)
或者,使用更好的格式:
for f in *.mp3; do
echo mv -- "$f" "${f%.mp3}_p192.mp3"
done
Run Code Online (Sandbox Code Playgroud)