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

CentOS中跨多文件夹批量重命名多个文件的方法求助

跨子目录批量重命名文件的解决方案

方法1:find + rename 组合(简洁高效)

这是最推荐的方式,适配大部分Linux系统:

find folder1 -type f -name "OLDfile.*" -exec rename 's/OLDfile/NEWfile/' {} +

命令分解:

  • find folder1:从folder1目录开始递归遍历所有子目录
  • -type f:仅匹配文件(跳过目录,避免误操作)
  • -name "OLDfile.*":精准匹配所有以OLDfile开头的文件,保留任意后缀
  • -exec rename 's/OLDfile/NEWfile/' {} +:对找到的所有文件执行Perl风格的rename命令,将文件名中的OLDfile替换为NEWfile

如果你的系统使用的是util-linux版本的rename(部分发行版默认),可以改用以下命令:

find folder1 -type f -name "OLDfile.*" -exec rename OLDfile NEWfile {} +

方法2:find + mv 组合(兼容性拉满)

如果系统没有合适的rename工具,用bash内置的字符串替换结合mv也能实现:

find folder1 -type f -name "OLDfile.*" -exec bash -c 'mv "$0" "${0/OLDfile/NEWfile}"' {} \;

命令分解:

  • -exec bash -c '...' {} \;:为每个找到的文件启动一个bash子进程执行重命名逻辑
  • "${0/OLDfile/NEWfile}":利用bash的字符串替换特性,把原路径中的OLDfile替换为NEWfile,自动保留原文件的路径和后缀名

执行以上任意命令后,你的文件结构会完全符合预期:

  • folder1/folderA1/folderA2/folderA3/OLDfile.jpeg → folder1/folderA1/folderA2/folderA3/NEWfile.jpeg
  • folder1/folderB1/folderB2/folderB3/OLDfile.exr → folder1/folderB1/folderB2/folderB3/NEWfile.exr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:10:56