Files
AgentSkills/skills_linker.sh
T

49 lines
1.6 KiB
Bash

#!/bin/bash
# 技能链接脚本 - 将当前目录下分类中的技能链接到 ~/.agents/skills/
# 用法: 在技能根目录(包含 development-and-standards 等分类文件夹)执行此脚本
TARGET_DIR="$HOME/.agents/skills"
# 创建目标目录(如果不存在)
mkdir -p "$TARGET_DIR"
# 遍历所有一级子目录(分类目录)
for category_dir in */; do
# 排除非目录项
[ -d "$category_dir" ] || continue
# 遍历分类目录下的技能子目录
for skill_dir in "$category_dir"/*/; do
[ -d "$skill_dir" ] || continue
skill_name="${skill_dir%/}"
skill_name="${skill_name##*/}"
# 源技能目录的绝对路径
src="$(realpath "$skill_dir")"
# 目标链接路径
link="$TARGET_DIR/$skill_name"
# 如果目标已存在且不是链接到当前源,则跳过(或可改为询问)
if [ -L "$link" ]; then
# 已存在符号链接,检查是否指向相同路径
current_target="$(readlink "$link")"
if [ "$current_target" = "$src" ]; then
echo "跳过: $link 已指向 $src"
continue
else
echo "警告: $link 存在但指向不同目标 ($current_target),将替换"
rm "$link"
fi
elif [ -e "$link" ]; then
echo "警告: $link 存在且不是符号链接,跳过 (手动处理)"
continue
fi
# 创建符号链接
ln -s "$src" "$link"
echo "已链接: $src -> $link"
done
done
echo "完成。所有技能已链接到 $TARGET_DIR"