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

如何在同目录下批量复制并重命名01开头.sh文件为02-05开头版本

Bash批量复制替换文件名前缀方案

原代码报错原因

你编写的cp通配符写法不支持批量替换文件名:Bash执行命令前会先把通配符展开为所有匹配的文件名列表,当cp接收多个源文件参数时,要求最后一个参数必须是目标目录,因此无法实现逐个修改文件名前缀的效果。

实现代码

以下为原生Bash实现,无需安装额外工具,逻辑稳定:

#!/bin/bash
# 外层循环遍历要生成的前缀数字2~5,对应02~05的前缀
for prefix in {2..5}; do
    # 内层循环遍历所有原始的01开头的目标文件
    for src_file in 01*_AAA_*.sh; do
        # 替换前缀:去掉源文件名开头的01,拼接新前缀0${prefix}
        dest_file="0${prefix}${src_file#01}"
        # 执行复制,-- 用于兼容特殊开头的文件名
        cp -- "$src_file" "$dest_file"
    done
done

验证方法

运行脚本前可先将cp --替换为echo cp --,执行后会打印所有待执行的复制命令,确认文件名替换规则符合预期后,再换回cp --实际执行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:45:03