昨天手误 rm -rf ~/.claude,把 Claude Code 的整个配置目录删了——CLAUDE.md、MCP 配置、settings、自定义 skills,几乎全部归零。后来靠 VS Code 的缓存找回了一部分,但也只够勉强止损。
非常痛,吸取教训,做了两件事。
用 rmtrash 替代 rm
安装 rmtrash,让 rm 变为移到废纸篓而非直接删除:
| |
在 ~/.zshrc 中加入 alias:
| |
这样即使再次误删,也能从废纸篓恢复。
创建配置仓库
将需要版本管理的配置文件抽取到独立仓库,通过同步机制映射回各工具期望的路径。
仓库结构
| |
核心设计
配置分离,规则共享:claude/ 和 codebuddy/ 各自维护独立的 settings 和 MCP 配置,但 rules/ 和 skills/ 目录两者共享。
同步方案(sync.sh)
Claude Code / CodeBuddy 使用原子写入(write-file-atomic)保存配置文件——写临时文件再 rename 覆盖目标。这会破坏硬链接和文件级软链接。因此配置文件不使用链接,改为 launchd WatchPaths + 双向 rsync 实现自动同步。
sync.conf 用简单的 DSL 声明两种同步关系:
[sync]— 文件双向同步,按 mtime 判断方向,较新者覆盖较旧者[link]— 目录软链接(rules/、skills/),不受原子写入影响
用法:
| |
安装后,任何被监听文件的变更都会在 3 秒内自动触发双向同步,零人工干预。
日志位于 ~/Library/Logs/claude-config/sync.log。
