6.17 --resume - 恢复特定会话
第 6 章 · CLI 标志说明 · 第2部分:命令参考
概述#
--resume 标志允许您恢复之前保存的特定会话。这对于继续中断的工作、回顾历史对话或在不同设备间同步会话非常有用。
基本语法#
bash复制claude --resume 会话ID>
使用场景#
1. 恢复中断的会话#
bash复制# 恢复之前中断的会话claude --resume session-abc123 # 继续之前的工作
2. 回顾历史对话#
bash复制# 查看并恢复历史会话claude --resume session-xyz789 # 回顾之前的讨论
3. 在不同设备间同步#
bash复制# 在设备 A 上保存会话claude --session-id my-session # 在设备 B 上恢复会话claude --resume my-session
4. 分支开发#
bash复制# 从主会话创建分支claude --resume main-session # 在新分支上工作claude --session-id branch-session
高级用法#
1. 与其他标志组合#
bash复制# 恢复会话 + 指定模型claude --resume session-abc123 --model opus # 恢复会话 + 自定义系统提示claude --resume session-abc123 --system-prompt "你是一位 Python 专家" # 恢复会话 + 限制工具claude --resume session-abc123 --allowedTools "Read""Grep"
2. 会话管理#
bash复制#!/bin/bash# session-manager.sh# 列出所有会话claude --list-sessions # 恢复特定会话SESSION_ID=$1claude --resume "$SESSION_ID"
3. 会话备份#
bash复制#!/bin/bash# backup-session.sh SESSION_ID=$1BACKUP_DIR="backups/sessions" # 创建备份目录mkdir -p "$BACKUP_DIR" # 备份会话claude --export-session "$SESSION_ID">"$BACKUP_DIR/$SESSION_ID.json" echo"会话已备份到 $BACKUP_DIR/$SESSION_ID.json"
4. 会话迁移#
bash复制#!/bin/bash# migrate-session.shOLD_SESSION=$1NEW_SESSION=$2# 导出旧会话claude --export-session "$OLD_SESSION"> temp-session.json # 导入为新会话claude --import-session temp-session.json --session-id "$NEW_SESSION"# 清理临时文件rm temp-session.json echo"会话已迁移从 $OLD_SESSION 到 $NEW_SESSION"
实际应用示例#
示例 1: 项目开发会话#
bash复制#!/bin/bash# project-session.sh PROJECT=$1SESSION_ID="project-$PROJECT-$(date +%Y%m%d)" # 检查会话是否存在if claude --session-exists "$SESSION_ID";thenecho"恢复会话: $SESSION_ID" claude --resume "$SESSION_ID"elseecho"创建新会话: $SESSION_ID" claude --session-id "$SESSION_ID"fi
示例 2: 多阶段任务#
bash复制#!/bin/bash# multi-stage-task.shTASK=$1# 阶段 1:分析echo"阶段 1:分析"claude --session-id "$TASK-stage1" -p "分析需求"# 阶段 2:设计echo"阶段 2:设计"claude --resume "$TASK-stage1" -p "设计系统"# 阶段 3:实现echo"阶段 3:实现"claude --resume "$TASK-stage2" -p "实现功能"
示例 3: 代码审查会话#
bash复制#!/bin/bash# code-review-session.sh REVIEW_ID="review-$(date +%Y%m%d-%H%M%S)" # 开始审查echo"开始代码审查: $REVIEW_ID"claude --session-id "$REVIEW_ID" -p "开始代码审查" # 恢复审查echo"恢复代码审查: $REVIEW_ID"claude --resume "$REVIEW_ID"
示例 4: 学习会话#
bash复制#!/bin/bash# learning-session.shTOPIC=$1SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"# 检查是否有学习会话if[ -f "sessions/$SESSION_ID.json"];thenecho"继续学习: $TOPIC"claude --resume "$SESSION_ID"elseecho"开始学习: $TOPIC"claude --session-id "$SESSION_ID" -p "学习 $TOPIC"fi
会话生命周期#
1. 创建会话#
bash复制# 创建新会话claude --session-id my-new-session # 会话自动创建并保存
2. 恢复会话#
bash复制# 恢复现有会话claude --resume my-existing-session # 继续之前的对话
3. 更新会话#
bash复制# 恢复会话并继续对话claude --resume my-session # 新的对话会更新会话
4. 删除会话#
bash复制# 删除会话claude --delete-session my-session
会话管理技巧#
1. 命名约定#
bash复制# 使用描述性的会话 IDclaude --session-id "project-auth-module-20240115"claude --session-id "bugfix-login-issue-20240115"claude --session-id "learning-python-async-20240115"
2. 会话分组#
bash复制# 使用前缀分组claude --session-id "dev-auth-module"claude --session-id "dev-user-module"claude --session-id "test-auth-module"
3. 会话归档#
bash复制#!/bin/bash# archive-sessions.sh ARCHIVE_DIR="archive/sessions"mkdir -p "$ARCHIVE_DIR" # 归档旧会话forsessionin$(claude --list-sessions |grep"2023");do claude --export-session "$session">"$ARCHIVE_DIR/$session.json" claude --delete-session "$session"done echo"旧会话已归档"
4. 会话搜索#
bash复制#!/bin/bash# search-sessions.shKEYWORD=$1# 搜索包含关键词的会话claude --list-sessions |grep"$KEYWORD"
最佳实践#
1. 定期保存会话#
bash复制# 为重要任务创建会话claude --session-id "important-task-$(date +%Y%m%d-%H%M%S)"
2. 使用有意义的会话 ID#
bash复制# 好的会话 IDclaude --session-id "project-api-design-20240115"# 不好的会话 IDclaude --session-id "session1"
3. 备份重要会话#
bash复制#!/bin/bash# backup-important-sessions.sh BACKUP_DIR="backups/sessions"mkdir -p "$BACKUP_DIR" # 备份所有会话forsessionin$(claude --list-sessions);do claude --export-session "$session">"$BACKUP_DIR/$session.json"done echo"所有会话已备份"
4. 清理旧会话#
bash复制#!/bin/bash# cleanup-old-sessions.sh# 删除 30 天前的会话forsessionin$(claude --list-sessions |grep"2023");doclaude --delete-session "$session"doneecho"旧会话已清理"
常见问题#
Q1: 如何查看所有可用的会话?#
A: 使用 claude --list-sessions 命令列出所有会话。
Q2: 会话会自动保存吗?#
A: 是的。会话会自动保存,除非显式删除。
Q3: 会话有大小限制吗?#
A: 有一定的限制。如果会话太大,建议创建新会话。
Q4: 可以导出会话吗?#
A: 可以。使用 claude --export-session 导出会话。
Q5: 可以在不同设备间共享会话吗?#
A: 可以。导出会话后,在另一个设备上导入。
与其他标志的组合示例#
1. 完整的项目开发流程#
bash复制#!/bin/bash# project-development.sh PROJECT=$1 # 创建项目会话SESSION_ID="project-$PROJECT-$(date +%Y%m%d)" # 阶段 1:需求分析claude --session-id "$SESSION_ID" -p "分析需求" # 阶段 2:设计claude --resume "$SESSION_ID" -p "设计系统" # 阶段 3:实现claude --resume "$SESSION_ID" -p "实现功能" # 阶段 4:测试claude --resume "$SESSION_ID" -p "生成测试"
2. 学习流程#
bash复制#!/bin/bash# learning-flow.shTOPIC=$1SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"# 检查是否有学习会话if[ -f "sessions/$SESSION_ID.json"];thenecho"继续学习: $TOPIC"claude --resume "$SESSION_ID"elseecho"开始学习: $TOPIC"claude --session-id "$SESSION_ID" -p "学习 $TOPIC"fi
3. Bug 修复流程#
bash复制#!/bin/bash# bug-fix-flow.sh BUG_ID=$1SESSION_ID="bugfix-$BUG_ID-$(date +%Y%m%d)" # 开始修复claude --session-id "$SESSION_ID" -p "分析 bug: $BUG_ID" # 继续修复claude --resume "$SESSION_ID" -p "实现修复" # 验证修复claude --resume "$SESSION_ID" -p "验证修复"
总结#
--resume 标志提供了一种恢复之前会话的方式。通过使用此标志,您可以:
- 继续中断的工作
- 回顾历史对话
- 在不同设备间同步会话
- 实现分支开发
合理使用 --resume 可以帮助您更好地管理和组织工作,特别是在需要长时间或分阶段完成任务时。