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

使用find命令的-exec操作批量重命名.py文件的更优方法咨询

使用find命令的-exec操作批量重命名.py文件的更优方法咨询

最近我正在学习bash,接触到了find命令,想借助它批量把所有.py文件重命名为.bak格式(比如把hello.py改成hello.bak)。

我原本觉得应该能写出这样的命令:

find -name "*.py" -exec mv {} NEW_NAME \;

这里的NEW_NAME就是重命名后的{}。

我试过好几种绕圈子的方法:

  • 尝试把{}赋值给变量:但没法在-exec里完成变量赋值(比如-exec a=1这类写法会直接报错)
  • 用管道组合命令:单独执行echo $(echo ./hello.py | cut -d'.' -f2).bak能得到预期的/hello.bak,但把NEW_NAME替换成$(echo {} | cut -d'.' -f2).bak却完全不行

最后我终于实现了需求,用的是这条命令:

find -name "*.py" -exec bash -c 'mv $0 ${0/.py/.bak}' "{}" \;

不过我总感觉应该有更简单的实现方式,是不是我漏掉了什么显而易见的技巧?

补充说明:我知道除了find ... -exec ...之外,还有其他批量重命名文件的方法,但我就是想找用这个命令组合实现的更优/更简洁的方式——我本来还盼着Linux里有类似Python的.replace()字符串方法的功能呢。

备注:内容来源于stack exchange,提问作者Swifty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:25:33