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

如何按指定.nc文件名规则复制并重命名/home/test/下的bash.sh?

轻松实现批量复制脚本的方案

嘿,这个需求用bash的基础语法就能快速搞定,给你几个实用的实现方式:

方法一:直观的多行循环(易读好理解)

直接在终端切换到目标目录,或者写个临时脚本执行下面的代码:

cd /home/test/
# 遍历当前目录下所有.nc文件
for nc_file in *.nc; do
    # 去掉文件名的.nc后缀,拿到基础名称
    base_name="${nc_file%.nc}"
    # 执行复制操作,生成目标文件
    cp bash.sh "${base_name}_bash.sh"
done

关键细节解释:

  • *.nc:会自动匹配当前目录下所有后缀为.nc的文件,正好对应你提到的那5个文件
  • ${nc_file%.nc}:这是bash的参数扩展技巧,专门用来移除变量末尾指定的后缀,比如file_1a.nc经过处理后就变成了file_1a
  • 最后一行的cp命令就是把原脚本bash.sh复制成拼接好的新文件名,完美符合你的要求

方法二:一行命令快速执行(适合终端直接敲)

如果不想写多行代码,把逻辑压缩成一行也能搞定:

cd /home/test/ && for f in *.nc; do cp bash.sh "${f%.nc}_bash.sh"; done

精准指定文件的版本(避免误处理其他.nc)

要是你的目录里以后可能会有其他.nc文件,不想一起处理,那可以直接列出要处理的5个文件:

cd /home/test/
target_files=(file_1a.nc file_1b.nc file_2a.nc file_6a.nc file_6b.nc)
for nc_file in "${target_files[@]}"; do
    base_name="${nc_file%.nc}"
    cp bash.sh "${base_name}_bash.sh"
done

验证结果

执行完之后,用ls *.sh命令就能看到生成的5个新脚本啦,完全符合你要的命名格式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:53:11