34 lines
1.0 KiB
Bash
Executable File
34 lines
1.0 KiB
Bash
Executable File
#!/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" |