#!/bin/bash # 确保脚本在遇到错误时停止执行 set -e # 定义路径 TARGET_DIR="./unswsc" SOURCE_DIR=".." echo "开始查找并复制头文件..." # 1. 如果目标文件夹已存在,先清空它(确保没有旧的残留文件);如果不存在则创建 if [ -d "$TARGET_DIR" ]; then echo "清理旧的 $TARGET_DIR 目录..." rm -rf "$TARGET_DIR"/* else mkdir -p "$TARGET_DIR" fi # 2. 查找上级目录中所有包含 UNSWSC_DLL_EXPORT 的 .h 文件并复制 # -type f: 只找文件 # -name "*.h": 限制扩展名为 .h # grep -l: 只输出包含该关键字的文件名 find "$SOURCE_DIR" -type f -name "*.h" | while read -r header_file; do if grep -q "UNSWSC_DLL_EXPORT" "$header_file"; then echo "发现匹配文件: $header_file" # 复制到目标文件夹(此处直接平铺复制,不保留原有的复杂目录结构) cp "$header_file" "$TARGET_DIR/" fi done echo "===========================================" echo "所有匹配的头文件已成功复制到: $TARGET_DIR" ls -l "$TARGET_DIR"