You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Shell脚本重命名目录下未知名称的唯一.MP3文件

错误原因

你使用的变量替换语法${file/.MP3/news.mp3}的逻辑是将原文件名中匹配到的.MP3子串替换为news.mp3,如果原文件名为daily_podcast_20240520.MP3,替换后会得到daily_podcast_20240520news.mp3,就是你遇到的名称拼接问题。

修正脚本

因为你确认目录下仅有一个.MP3后缀的目标文件,直接指定目标文件名即可,脚本修正如下:

#!/bin/sh
for file in *.MP3; do
    # 添加--避免文件名以-开头时被mv识别为命令参数
    mv -- "$file" "news.mp3"
done

更稳妥的增强版本

如果要避免目录下出现多个.MP3文件时误操作,可以添加数量判断逻辑:

#!/bin/sh
# 统计当前目录下.MP3文件数量,不递归子目录
mp3_count=$(ls *.MP3 2>/dev/null | wc -l)
if [ "$mp3_count" -eq 1 ]; then
    mv -- *.MP3 news.mp3
else
    echo "当前目录.MP3文件数量不符合预期,未执行重命名操作"
fi

内容的提问来源于stack exchange,提问作者jules_bike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:24:06