如何在终端中基于首个下划线批量修改图片文件名?
批量重命名解决方案
Terminal 命令实现
你可以用 bash 的参数展开功能快速实现需求,核心是提取第一个下划线之后的文件名部分。
步骤1:先预览重命名效果(避免误操作)
进入图片所在文件夹后,执行以下命令查看预期结果:
for f in *.jpg; do echo "原文件: $f → 新文件名: ${f#*_}" done
${f#*_} 的作用是:删除文件名中第一个下划线及之前的所有字符,完全匹配你的需求。
步骤2:执行实际重命名
确认预览结果无误后,把 echo 替换成 mv 命令执行重命名:
for f in *.jpg; do mv "$f" "${f#*_}" done
如果文件夹里还有 .png 等其他格式图片,可将通配符改为 *.[jJ][pP][gG] *.[pP][nN][gG] 覆盖更多格式。
你之前的脚本无效原因
朋友给的脚本是针对按点分割文件名的场景(提取前缀和后缀),而你的需求是按第一个下划线分割,语法逻辑不匹配,所以无法生效。
批量重命名软件推荐
如果不想用命令行,这些可视化工具可以轻松完成操作:
- macOS 自带功能:选中所有图片,右键选择「重命名」,切换到「替换文本」,勾选「使用正则表达式」,查找内容填
^.*_,替换内容留空,点击「重命名」即可。 - Advanced Renamer:跨平台工具,支持多种重命名规则,包括字符分割、正则替换等,操作直观。
- Thunar(Linux):GNOME 桌面的文件管理器,自带批量重命名工具,支持「删除前缀到指定字符」的规则。
- Renamer(macOS):专门的批量重命名工具,预设多种规则,也支持自定义正则。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

