跳到主要内容

backup

创建、列出并管理 target 目录的 Backup。

skillshare backup              # 备份所有 skill target
skillshare backup claude # 备份指定 target
skillshare backup agents # 备份所有 agent target
skillshare backup --all # 备份 skills + agents
skillshare backup --list # 列出所有 Backup
skillshare backup --cleanup # 移除旧的 Backup

何时使用

  • 在有风险的变更之前创建手动 Backup
  • 列出现有 Backup 以检查恢复选项
  • 清理旧的 Backup 以释放磁盘空间

自动 Backup

Backup 会在以下操作之前自动创建:

  • skillshare sync(skill target 和 agent target)
  • skillshare sync agents(仅 agent target)
  • skillshare target remove

位置:~/.local/share/skillshare/backups/<timestamp>/(global)、.skillshare/backups/(project mode,仅 agents)

每次自动 Backup 之后都会自动应用 Retention 策略,使用与 --cleanup 相同的规则。你不需要手动清理快照。

Commands

创建 Backup

skillshare backup              # 所有 target
skillshare backup claude # 指定 target
skillshare backup --dry-run # 预览

列出 Backup

skillshare backup --list
All backups (15.3 MB total)
2026-01-20_15-30-00 claude, cursor 4.2 MB ~/.local/share/.../2026-01-20_15-30-00
2026-01-19_10-00-00 claude 2.1 MB ~/.local/share/.../2026-01-19_10-00-00
2026-01-18_09-00-00 claude, cursor 4.0 MB ~/.local/share/.../2026-01-18_09-00-00

清理旧的 Backup

skillshare backup --cleanup           # 移除旧的 Backup
skillshare backup --cleanup --dry-run # 预览清理效果

默认清理策略:

  • 保留最近 10 个 Backup
  • 移除超过 30 天的 Backup
  • 总大小上限为 500 MB

即使最新的快照单独就超过了大小上限,它也始终会被保留——你永远不会失去恢复点。

这个策略在每次 sync 之后都会自动运行,因此 --cleanup 只在你想按需清理时才需要用到。

Options

Flag说明
--all同时备份 skills 和 agents
--project, -p使用 project mode(.skillshare/backups/);仅限 agents
--global, -g使用 global mode(skills 的默认值)
--list, -l列出所有 Backup
--cleanup, -c移除旧的 Backup
--target, -t <name>针对指定 target 备份(作为位置参数的替代方式)
--dry-run, -n预览而不做任何变更

backup 还接受一个位置形式的 kind 参数:skillshare backup agents 会把备份范围限定为仅 agent target。

Backup 结构

~/.local/share/skillshare/backups/
├── 2026-01-20_15-30-00/
│ ├── claude/
│ │ ├── skill-a/
│ │ └── skill-b/
│ └── cursor/
│ ├── skill-a/
│ └── skill-b/
└── 2026-01-19_10-00-00/
└── claude/
└── ...

存在的 skill 目录取决于该 target 的模式——参见 What Gets Backed Up

What Gets Backed Up

一次 Backup 只保护 sync 可能会破坏的内容:存在于 target、但不存在于你的 source 中的本地内容。

  • target 中的常规文件和目录会被备份
  • merge 模式 target 中的逐个 skill symlink 会被跳过——它们指向你的 source(唯一的真实来源),本身已经是安全的。skillshare sync 会重新创建它们

这意味着:

  • 在 merge 模式下:只有本地(非 symlink)的 skills 会被备份。被同步的 skills 存放在 source 中
  • 在 copy 模式下:所有受管理的 skill 目录都会被备份(它们是真实文件)
  • 在 symlink 模式下:不会备份任何内容(整个目录是一个 symlink)

如果一个 target 中只包含 symlink,则不会创建 Backup,backup 会报告没有需要做的事——一个空的恢复点没有意义。

Backups & Disk Space

Backup 从不复制你的 source,因此它们一直很小。以下三种机制很容易混淆:

机制范围控制的内容
source 中的 .gitignore仅限 GitGit 追踪的内容。被忽略的文件仍然存在于磁盘上
config.yaml 中的 ignore:syncsync 复制到 target 的文件(主要是 copy 模式)。参见 sync
Backup快照仅限本地 target 内容——symlink 以及因此对应的 source 内容会被排除

因为 symlink 的 skills 不会被跟随,存放在 source skill 内部的重量级产物(模型权重、.venv、浏览器 profile、媒体文件)永远不会被复制进快照,无论 .gitignoreignore: 是否提到它们。

Retention 会在每次 sync 之后自动运行,使用下方的默认策略。要手动查看用量:

du -sh ~/.local/share/skillshare/backups   # 磁盘上的总大小
skillshare backup --list # 每个快照的大小
skillshare backup --cleanup --dry-run # 预览 Retention 会移除什么

Copy 模式的 target 是快照仍可能变大的唯一情形:它们是真实文件,因此某个 skill 目录下的任何内容都会被复制。请把运行时缓存和大型产物放在 skill 目录之外,或者用 ignore: 排除它们,避免它们一开始就到达 target。

Agent Backup

Agents 有自己的 Backup 流程,与 skill Backup 并行运行,有两点值得注意的区别:

条目命名。 Agent Backup 存储在每个 timestamp 目录内的 <target>-agents/ 下,与 skill Backup 并列。例如,运行 skillshare backup --all 之后目录结构如下:

~/.local/share/skillshare/backups/2026-01-20_15-30-00/
├── claude/ # claude 的 skills 备份
├── claude-agents/ # claude 的 agents 备份
└── cursor/

Project mode 与 skills 相反。 在 project mode(-p)下,backup 会拒绝备份 skill target,但备份 agent target。如果你忘了加 agents 过滤条件,会看到这样的错误:

backup is not supported in project mode (except for agents)

因此在 project mode 下,你必须使用 skillshare backup -p agentsskillshare backup -p --all

skillshare backup agents                  # 所有 agent target(global)
skillshare backup agents claude # 只备份 claude 的 agents
skillshare backup agents -p # project 的 agent target
skillshare backup --all # 一次性备份 skills + agents

参见 Agents 了解 agent 资源模型,以及 restore 了解恢复方式。

另请参阅