关于 backup-library
用于创建和恢复 ButterCut 按库备份的 Skill。归档按库分别保存,并在可用时使用 Apple Archive,否则使用 ZIP。
主要功能
- 01按库创建带时间戳的归档
- 02可配置备份目录
- 03支持 Apple Archive 或 ZIP
- 04将归档恢复到 libraries
适用场景
- 01备份刚编辑的单个库
- 02按需备份所有库
- 03从归档恢复库
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ barefootford/ buttercut --skill backup-library安装后在 Claude Code 中输入/backup-library确认已加载。
详细介绍
技能:备份库
备份默认存放在 ~/Documents/buttercut-video-editor-backups。每个库都会在此处拥有自己的子目录,每次运行都会生成仅包含该库的带时间戳归档文件——因此,向某个库添加新剪辑时,只会写入该库的归档文件,而不会重复备份所有内容。
~/Documents/buttercut-video-editor-backups/
wedding/
wedding_20260520_140000.aar
programmer-story-vlog/
programmer-story-vlog_20260520_140000.aar
步骤 1 — 确定目标位置
从 libraries/settings.yaml 读取 backups_dir。如果缺少此键,请使用 AskUserQuestion 询问用户是使用默认位置(~/Documents/buttercut-video-editor-backups,推荐)还是自定义文件夹,并将答案保存到 libraries/settings.yaml 的 backups_dir 下。如果 libraries/settings.yaml 尚不存在,请先根据 templates/settings_template.yaml 创建该文件。
如果此技能由另一个必须保持非交互的技能调用(例如 process-library 自动备份),且未设置 backups_dir,则跳过询问并使用默认位置——用户之后可以更改。
步骤 2 — 执行备份
默认只备份当前正在处理的库——“执行备份”通常指的就是这个。只有在用户明确要求备份“所有库”或进行一次性清理时,才备份所有内容。
# Back up the one library you just touched (the usual case)
ruby lib/buttercut/backup_libraries.rb --library <library-name>
# Back up every library (only when the user explicitly asks)
ruby lib/buttercut/backup_libraries.rb
脚本会从 libraries/settings.yaml 读取 backups_dir(若未设置,则使用默认位置)。传入 --backups-dir <path> 可覆盖本次运行所用的位置。
如果 macOS 上有 aa CLI,则使用 Apple Archive(.aar)——在 Apple Silicon 上支持硬件加速,也可在 Finder 中双击解压。否则回退到 .zip——在 Windows 上,由于没有 zip CLI,脚本会使用内置的 System32 tar.exe(或 PowerShell)写入 zip 文件;无论采用哪种方式,输出的都是可双击打开的标准 .zip 文件。
backup_all 成功运行后,如果旧的项目内 backups/ 目录(采用旧的单归档布局)仍然存在,且解析后的 backups_dir 指向其他位置,脚本会将其删除。按单个库运行时不会处理该目录。
恢复库
将单个库的归档文件解压回 libraries/:
# Apple Archive (macOS) — restores into libraries/<library-name>/
aa extract -i ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.aar -d libraries/<library>
# Zip on macOS/Linux — already contains the <library>/ folder
unzip ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.zip -d libraries/
# Zip on Windows (Git Bash) — System32's bsdtar reads zip; plain `tar` (GNU) can't
/c/Windows/System32/tar.exe -xf ~/Documents/buttercut-video-editor-backups/<library>/<library>_<timestamp>.zip -C libraries/