#!/bin/bash SRC_DIR=~/compile/compiler/nudt-compiler-cpp/src DST_DIR=~/compile/compiler/nudt-compiler-cpp/warning/src mkdir -p "$DST_DIR" find "$SRC_DIR" \( -name '*.cpp' -o -name '*.h' \) | while read -r file; do rel_path="${file#$SRC_DIR/}" dir=$(dirname "$rel_path") mkdir -p "$DST_DIR/$dir" cp "$file" "$DST_DIR/$rel_path" done echo "Done. All .cpp and .h files copied to $DST_DIR"