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

如何复制目录名包含指定字符串的目录,适配匹配Rob G、Marwa E场景

解决方案

你可以直接使用修改后的如下命令实现需求:

mkdir -p destination_folder || exit 1
find . -path ./destination_folder -prune -o \
  -type d \( -name "Rob G" -o -name "Marwa E" \) \
  -exec cp -r {} destination_folder/ \;

逻辑修改说明

  • 原命令中-type f代表只匹配普通文件,改为-type d后限定只搜索目录
  • 新增\( -name "Rob G" -o -name "Marwa E" \)条件组,直接匹配你指定的两个目标目录名,无需额外读取名单文件;如果后续需要调整匹配列表,也可以改回原逻辑从txt文件读取人名,把上述条件替换为-name "$name"即可
  • 给cp命令增加-r参数,实现递归复制整个目录的所有内容

如果你的目录结构里存在多个同名的目标目录(比如示例里2021年1月和10月各有一个Marwa E目录),直接复制会出现后复制的目录覆盖先复制的同名目录的问题,可以用下面的优化版本,给每个复制的目录加上原路径前缀避免重名:

mkdir -p destination_folder || exit 1
find . -path ./destination_folder -prune -o \
  -type d \( -name "Rob G" -o -name "Marwa E" \) -print0 | while IFS= read -r -d '' dir_path; do
    # 将原路径里的斜杠替换为下划线作为新目录名,保留路径信息同时避免重名
    new_dir_name="${dir_path//\//_}"
    cp -r "$dir_path" "destination_folder/${new_dir_name}"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:57:03