AIButton
根据描述自动生成符合规范的Vision Node AI按钮控件ZIP包。
仅备份 OpenClaw 工作区的 Markdown 文件,保持目录结构,支持快速压缩与还原。
openclaw skills install @roryyu/workspace-zip-backup命令、参数、文件名以原文为准
OpenClaw workspace 核心文件快速备份技能。仅压缩备份所有 markdown 文件(核心笔记、技能文档、记忆文件等),保持原始文件夹结构,便于迁移和还原。
快速备份工具,用于 OpenClaw workspace 的核心文件。仅压缩 .md 文件,保留完整的目录结构,方便迁移与恢复。
.md 文件,忽略二进制文件、node_modules、构建输出等zip 命令实现,性能高效backup-workspace.sh | Backup Script#!/bin/bash
# workspace-backup - 备份 OpenClaw workspace 中所有 markdown 文件,保持目录结构
# workspace-backup - Backup all markdown files from OpenClaw workspace keeping directory structure
set -euo pipefail
# 默认配置 | Default configuration
SOURCE_DIR="${1:-$HOME/.openclaw/workspace}" # 源文件夹,默认: ~/.openclaw/workspace
OUTPUT_ZIP="${2:-workspace-backup-$(date +%Y%m%d).zip}" # 输出压缩包路径,默认按日期命名
show_help() {
echo "用法: ./backup-workspace.sh [source_dir] [output_zip]"
echo ""
echo "参数:"
echo " source_dir 要备份的文件夹 (默认: ~/.openclaw/workspace)"
echo " output_zip 输出压缩包路径 (默认: workspace-backup-YYYYMMDD.zip)"
echo ""
echo "示例:"
echo " ./backup-workspace.sh"
echo " 备份默认 workspace 到当前日期命名的压缩包"
echo " ./backup-workspace.sh ~/my-notes my-notes-backup.zip"
echo " 备份指定文件夹"
exit 1
}
# 检查帮助参数 | Check for help
if [ "$#" -ge 1 ] && [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
show_help
fi
# 检查源文件夹是否存在 | Check source directory exists
if [ ! -d "$SOURCE_DIR" ]; then
echo "错误: 源文件夹 '$SOURCE_DIR' 不存在或不是目录"
exit 1
fi
echo "====== Workspace Markdown Backup ======"
echo "源文件夹: $SOURCE_DIR"
echo "输出文件: $OUTPUT_ZIP"
echo ""
echo "正在搜索所有 .md 文件..."
# 统计 markdown 文件数量 | Count markdown files
MD_COUNT=$(find "$SOURCE_DIR" -type f -name "*.md" | wc -l)
if [ "$MD_COUNT" -eq 0 ]; then
echo "未找到任何 .md 文件,退出"
exit 0
fi
echo "找到 $MD_COUNT 个 .md 文件,开始压缩..."
echo ""
# 使用 zip 命令压缩,保持目录结构 | Compress using zip, keep directory structure
find "$SOURCE_DIR" -type f -name "*.md" | xargs zip -r "$OUTPUT_ZIP"
echo ""
echo "✅ 备份完成!"
echo "压缩包: $OUTPUT_ZIP"
echo "包含 $MD_COUNT 个 .md 文件,保持原始文件夹结构"
# 显示压缩后大小 | Show compressed size
SIZE=$(du -h "$OUTPUT_ZIP" | cut -f1)
echo "压缩后大小: $SIZE"需要使用时,将上述脚本代码复制保存为文件:
# 复制本文件中备份脚本代码块内容
cat > backup-workspace << 'EOF'
[paste script code here]
EOF
chmod +x backup-workspace
mv backup-workspace ~/.local/bin/restore-workspace.sh | Restore Script#!/bin/bash
# workspace-restore - 从备份压缩包还原 markdown 文件
set -euo pipefail
# 默认配置
BACKUP_ZIP="${1:-}" # 要还原的压缩包 (必填)
TARGET_DIR="${2:-$HOME/.openclaw/workspace}" # 还原到哪个文件夹 (默认: ~/.openclaw/workspace)
show_help() {
echo "用法: ./restore-workspace.sh <backup_zip> [target_dir]"
echo ""
echo "参数:"
echo " backup_zip 要还原的压缩包 (必填)"
echo " target_dir 还原到哪个文件夹 (默认: ~/.openclaw/workspace)"
echo ""
echo "示例:"
echo " ./restore-workspace.sh workspace-backup-20260316.zip"
echo " 还原到默认 workspace"
echo " ./restore-workspace.sh my-notes-backup.zip ~/new-workspace"
echo " 还原到指定位置"
exit 1
}
# 检查帮助参数
if [ "$#" -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
show_help
fi
# 检查备份文件是否存在
if [ ! -f "$BACKUP_ZIP" ]; then
echo "错误: 备份文件 '$BACKUP_ZIP' 不存在"
exit 1
fi
# 检查目标文件夹
if [ ! -d "$TARGET_DIR" ]; then
echo "目标文件夹 '$TARGET_DIR' 不存在,创建它..."
mkdir -p "$TARGET_DIR"
fi
echo "====== Workspace Markdown 还原 ======"
echo "备份文件: $BACKUP_ZIP"
echo "目标文件夹: $TARGET_DIR"
echo ""
echo "正在列出压缩包内容..."
echo ""
# 还原前列出内容供用户确认
unzip -l "$BACKUP_ZIP"
echo ""
echo "是否继续还原? (y/N)"
read -r CONFIRM || CONFIRM="N"
if [ "$CONFIRM" != "y" ] && [ "$CONFIRM" != "Y" ]; then
echo "已取消"
exit 0
fi
echo ""
echo "开始还原..."
echo ""
# 使用 unzip 还原 - 自动解压到正确的目录结构
unzip -o "$BACKUP_ZIP"
echo ""
echo "✅ 还原完成!"
echo "所有文件已还原,保持原始文件夹结构"
# 统计还原文件数量
RESTORED_COUNT=$(unzip -l "$BACKUP_ZIP" | grep -c "\.md$")
echo "共还原 $RESTORED_COUNT 个 .md 文件"需要使用时,复制上面的脚本代码保存为文件即可:
# 复制本文件中还原脚本代码块内容
cat > restore-workspace << 'EOF'
[paste script code here]
EOF
chmod +x restore-workspace
mv restore-workspace ~/.local/bin/find <dir> -type f -name "*.md" 递归搜索所有 markdown 文件xargs 将找到的文件传给 zip -r,zip 自动保持相对路径结构unzip -l 列出压缩包内容,供用户确认y 才开始还原,防止误操作unzip -o 解压,因压缩包中已保存完整路径,可自动还原目录结构当多个 agent 在同一环境运行时,每个 agent 可能拥有独立的 workspace。本工具支持备份任意一个 workspace。
备份非默认 workspace 时,始终显式指定源文件夹参数:
backup-workspace /path/to/your/workspace backup-$(whoami)-workspace.zip对于多个 workspace,使用不同输出名称逐一备份:
backup-workspace ~/workspace-agent1 backup-agent1.zip
backup-workspace ~/workspace-agent2 backup-agent2.zip 推荐命名格式:workspace-backup-[用户名|agent名]-YYYYMMDD.zip
还原特定 workspace 的备份时,显式指定目标目录:
restore-workspace backup-agent1.zip /path/to/new/agent1/workspace若需将 workspace 从一个 agent 迁移到另一个:
# 在源 agent 上备份
backup-workspace /path/to/source/workspace migration.zip
# 将 migration.zip 传输至目标机器,在目标 agent 上还原
restore-workspace migration.zip /path/to/target/workspacebackup-workspace输出示例:
====== Workspace Markdown Backup ======
源文件夹: /root/.openclaw/workspace
输出文件: workspace-backup-20260316.zip
正在搜索所有 .md 文件...
找到 42 个 .md 文件,开始压缩...
adding: ... (stored 0%)
...
✅ 备份完成!
压缩包: workspace-backup-20260316.zip
包含 42 个 .md 文件,保持原始文件夹结构
压缩后大小: 1.2Mbackup-workspace ~/my-notes my-notes-backup.ziprestore-workspace workspace-backup-20260316.zip会先列出压缩包内容,然后询问确认:
... (list of files)
是否继续还原? (y/N)
y
开始还原...
✅ 还原完成!mkdir -p ~/new-workspace
unzip workspace-backup-20260316.zip -d ~/new-workspacefind、zip、unzip 即可运行apt install zip unzip在 Windows 子系统 for Linux (WSL) 中运行完全兼容,使用方法和 Linux 相同。
Git Bash / MinGW 环境通常包含 find、zip、unzip 命令,脚本只需微调路径即可工作:
C:\ 转换为 /c/ 格式参考上述逻辑移植为 PowerShell:
# PowerShell 等价逻辑:
# 1. 查找所有 .md 文件
$mdFiles = Get-ChildItem -Path $sourceDir -Recurse -Filter "*.md"
# 2. 使用 Compress-Archive 压缩
$mdFiles | Compress-Archive -DestinationPath $outputZip
# 3. 还原时
# Expand-Archive -Path $backupZip -DestinationPath $targetDir主要区别:
Get-ChildItem -Recurse 替代 findCompress-Archive/Expand-Archive 替代 zip/unzipzip - 压缩 (Ubuntu/Debian: apt install zip)unzip - 解压 (Ubuntu/Debian: apt install unzip)skills/workspace-backup/
└── SKILL.md # 技能文档(本文件,包含全部逻辑描述和脚本代码)本技能仅包含这一个 markdown 文件,所有备份和还原逻辑都在此文档中描述,代码以代码块形式提供。使用时复制代码块保存为可执行文件即可。
.md,会自动忽略图片、视频、node_modules、git 数据等workspace-backup-YYYYMMDD.zip 格式便于识别以下是在 AI agent 中使用此技能时的常见提示词示例:
使用 workspace-backup 技能帮我备份当前 OpenClaw workspace 所有 markdown 文件
Use the workspace-backup skill to backup all markdown files in current OpenClaw workspace帮我备份 ~/my-notes 目录下所有 markdown 文件,保存为 my-notes-backup.zip
Help me backup all markdown files under ~/my-notes directory, save as my-notes-backup.zip使用 workspace-backup 技能帮我还原 backup-20260316.zip 到当前 workspace
Use the workspace-backup skill to restore backup-20260316.zip to current workspace我要将这个 workspace 的所有 markdown 文件迁移到另一个机器的新 workspace,请帮我创建备份
I need to migrate all markdown files from this workspace to a new workspace on another machine, help me create the backup我这里有三个不同的 workspace,帮我分别备份它们,每个使用不同的文件名
I have three different workspaces here, help me backup them separately with different filenamesmarkdown
name: Workspace Zip Backup
version: 0.1.0
description: 在 Windows WSL 环境下,备份 /home/user/workspace 目录中的所有 Markdown 文件
summary: 备份指定路径下的所有 Markdown 文件为 ZIP 压缩包
在 Windows WSL 环境下,帮我备份 /home/user/workspace 所有 markdown 文件
当用户请求备份/还原时,agent 应遵循以下步骤:
chmod +x <script-file>已收录 1 个 Skill