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

Linux下如何使用rename或mv命令批量重命名指定目录中的文件

批量重命名带Token参数的M4A文件为序列文件名

这里有几种实用的方法帮你把目标目录里那些带?anghakamitoken=...后缀的M4A文件,批量重命名成1.m4a、2.m4a这类有序文件名:

方法一:Bash循环 + mv(兼容性拉满)

这是最通用的方案,几乎所有类Unix系统(Linux、macOS、BSD)都能直接用,还能避免文件覆盖:

  1. 先切换到目标文件所在目录:
cd /path/to/your/target/directory
  1. 执行以下循环命令:
count=1
for file in *.m4a?*; do
  # 跳过通配符不匹配时的空结果(避免报错)
  [ -f "$file" ] || continue
  # -n 参数确保不会覆盖已存在的文件,非常安全
  mv -n "$file" "${count}.m4a"
  ((count++))
done

额外优化:按文件名数字排序

如果想让重命名后的序号和原文件名里的数字顺序一致(比如_02_xxx.m4a?xxx排在_10_xxx.m4a?xxx前面,而不是字典序的反向),可以用ls -v做版本排序:

count=1
for file in $(ls -v *.m4a?*); do
  [ -f "$file" ] || continue
  mv -n "$file" "${count}.m4a"
  ((count++))
done

方法二:Perl版rename(简洁高效)

如果你的系统装的是Perl版本的rename(大部分Linux发行版默认是这个,可通过rename --version验证,输出含Perl字样即可),可以用一行命令搞定:

先执行测试模式(不会真的修改文件名,先预览结果):

rename -n 'BEGIN { our $count = 1; } s/.*\.m4a\?.*/${count++}.m4a/' *.m4a?*

确认预览结果符合预期后,去掉-n参数执行实际重命名:

rename 'BEGIN { our $count = 1; } s/.*\.m4a\?.*/${count++}.m4a/' *.m4a?*

命令解释

  • BEGIN { our $count = 1; }:初始化计数器从1开始
  • s/.*\.m4a\?.*/${count++}.m4a/:用正则匹配整个文件名(从开头到.m4a?及后面的所有内容),替换成自增的计数器值 + .m4a

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:19:10