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

编写Bash脚本:复制目录文件并替换文件名中的keyspace为newkeyspace_456

多目录文件复制并重命名的Bash脚本实现

这里有一个完全符合你需求的Bash脚本,它会自动处理Main_folder/keyspace下所有表子目录的文件复制与重命名操作,确保每个文件都能放到newkeyspace_456对应的子目录中,同时替换文件名里的标识字符串:

#!/bin/bash

# 定义源目录和目标目录路径,可根据实际情况修改
SOURCE_DIR="./Main_folder/keyspace"
TARGET_DIR="./Main_folder/newkeyspace_456"

# 检查源目录是否存在,不存在则退出脚本
if [ ! -d "$SOURCE_DIR" ]; then
    echo "错误:源目录 $SOURCE_DIR 不存在,请检查路径是否正确"
    exit 1
fi

# 遍历源目录下的所有表子目录
for table_dir in "$SOURCE_DIR"/*/; do
    # 获取当前表子目录的名称(去掉完整路径)
    table_name=$(basename "$table_dir")
    
    # 拼接目标子目录的完整路径
    target_table_dir="$TARGET_DIR/$table_name"
    
    # 创建目标子目录(-p参数确保父目录不存在时自动创建,且目录已存在不会报错)
    mkdir -p "$target_table_dir"
    
    # 遍历当前表子目录下的所有文件
    for file in "$table_dir"*; do
        # 只处理文件,跳过可能存在的子目录
        if [ -f "$file" ]; then
            # 获取原始文件名(去掉路径部分)
            original_filename=${file##*/}
            
            # 替换文件名中的"keyspace"为"newkeyspace_456"
            new_filename=${original_filename//keyspace/newkeyspace_456}
            
            # 复制文件到目标子目录并重命名
            cp "$file" "$target_table_dir/$new_filename"
            
            # 可选:打印操作日志,方便查看进度
            echo "已复制并重命名:$file -> $target_table_dir/$new_filename"
        fi
    done
done

echo "所有文件复制操作完成!"

脚本关键逻辑解释

  • 路径定义:开头的SOURCE_DIR和TARGET_DIR变量可以直接修改,适配你的实际目录结构,不用改动脚本核心逻辑。
  • 目录检查:先验证源目录是否存在,避免后续操作报错。
  • 子目录遍历:for table_dir in "$SOURCE_DIR"/*/会匹配keyspace下的所有子目录,也就是各个表的目录。
  • 目标目录创建:mkdir -p确保目标子目录存在,即使newkeyspace_456本身不存在也会自动创建。
  • 文件名替换:使用Bash的参数替换${original_filename//keyspace/newkeyspace_456},可以一次性替换文件名中所有出现的keyspace字符串。
  • 文件复制:cp命令直接完成复制+重命名的操作,一步到位。

使用说明

  1. 将脚本保存为copy_rename_files.sh
  2. 赋予执行权限:chmod +x copy_rename_files.sh
  3. 在脚本所在目录运行:./copy_rename_files.sh

比如你给出的示例文件keyspace/tableA-12323/keyspace-tableA-12323-ka-1-Data.db,执行脚本后会被复制到newkeyspace_456/tableA-12323/newkeyspace_456-tableA-12323-ka-1-Data.db,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:14:13