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

命令行批量重命名文件:移除文件名前缀的实现方法

批量重命名命令行解决方案

刚好之前处理过类似的批量重命名需求,给你两个在命令行里好用的办法,适配不同的系统环境:

方法一:用Perl版rename命令(简洁高效)

如果你的系统是Debian、Ubuntu这类发行版,默认自带的rename是Perl版本的,直接用这条命令就行:

rename 's/^\d+_//' *.faa

命令解释:

  • s/^\d+_// 是Perl正则替换规则:
    • ^ 匹配文件名的开头
    • \d+ 匹配一个或多个数字
    • _ 匹配下划线
    • 整体意思是把文件名开头的「数字+下划线」替换为空,正好去掉你不需要的前缀。

如果是RHEL、CentOS这类系统,默认的rename是另一个版本,你需要先安装Perl版的rename(包名通常是perl-rename),然后用prename命令代替rename执行上面的语句。

方法二:用Bash循环+mv命令(兼容性拉满)

要是你不想折腾安装额外工具,用系统自带的Bash循环和mv命令就能搞定,所有类Unix系统都支持:

for file in *.faa; do
  mv "$file" "${file#*_}"
done

命令解释:

  • ${file#*_} 是Bash的参数扩展语法:
    • # 表示从文件名的开头开始删除
    • *_ 表示匹配第一个下划线及其之前的所有内容
    • 所以这个表达式会直接返回去掉前缀后的新文件名。

安全小提示:

在执行实际重命名之前,建议先把mv换成echo,预览一下重命名的结果,避免误操作:

for file in *.faa; do
  echo "$file" -> "${file#*_}"
done

确认输出的新文件名都是你想要的,再把echo改回mv执行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:25:18