6.17 --resume - 恢复特定会话
概述
--resume 标志允许您恢复之前保存的特定会话。这对于继续中断的工作、回顾历史对话或在不同设备间同步会话非常有用。
python
## 基本语法
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=$1
claude --resume "$SESSION_ID"
### 3\. 会话备份
bash
#!/bin/bash
# backup-session.sh
SESSION_ID=$1
BACKUP_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.sh
OLD_SESSION=$1
NEW_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=$1
SESSION_ID="project-$PROJECT-$(date +%Y%m%d)"
# 检查会话是否存在
if claude --session-exists "$SESSION_ID"; then
echo "恢复会话: $SESSION_ID"
claude --resume "$SESSION_ID"
else
echo "创建新会话: $SESSION_ID"
claude --session-id "$SESSION_ID"
fi
### 示例 2: 多阶段任务
bash
#!/bin/bash
# multi-stage-task.sh
TASK=$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.sh
TOPIC=$1
SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"
# 检查是否有学习会话
if [ -f "sessions/$SESSION_ID.json" ]; then
echo "继续学习: $TOPIC"
claude --resume "$SESSION_ID"
else
echo "开始学习: $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
# 使用描述性的会话 ID
claude --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"
# 归档旧会话
for session in $(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.sh
KEYWORD=$1
# 搜索包含关键词的会话
claude --list-sessions | grep "$KEYWORD"
## 最佳实践
### 1\. 定期保存会话
bash
# 为重要任务创建会话
claude --session-id "important-task-$(date +%Y%m%d-%H%M%S)"
### 2\. 使用有意义的会话 ID
bash
# 好的会话 ID
claude --session-id "project-api-design-20240115"
# 不好的会话 ID
claude --session-id "session1"
### 3\. 备份重要会话
bash
#!/bin/bash
# backup-important-sessions.sh
BACKUP_DIR="backups/sessions"
mkdir -p "$BACKUP_DIR"
# 备份所有会话
for session in $(claude --list-sessions); do
claude --export-session "$session" > "$BACKUP_DIR/$session.json"
done
echo "所有会话已备份"
### 4\. 清理旧会话
bash
#!/bin/bash
# cleanup-old-sessions.sh
# 删除 30 天前的会话
for session in $(claude --list-sessions | grep "2023"); do
claude --delete-session "$session"
done
echo "旧会话已清理"
## 常见问题
### Q1: 如何查看所有可用的会话?
A: 使用 `claude --list-sessions` 命令列出所有会话。
### Q2: 会话会自动保存吗?
A: 是的。会话会自动保存,除非显式删除。
### Q3: 会话有大小限制吗?
A: 有一定的限制。如果会话太大,建议创建新会话。
### Q4: 可以导出会话吗?
A: 可以。使用 `claude --export-session <会话ID>` 导出会话。
### 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.sh
TOPIC=$1
SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"
# 检查是否有学习会话
if [ -f "sessions/$SESSION_ID.json" ]; then
echo "继续学习: $TOPIC"
claude --resume "$SESSION_ID"
else
echo "开始学习: $TOPIC"
claude --session-id "$SESSION_ID" -p "学习 $TOPIC"
fi
### 3\. Bug 修复流程
bash
#!/bin/bash
# bug-fix-flow.sh
BUG_ID=$1
SESSION_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 可以帮助您更好地管理和组织工作,特别是在需要长时间或分阶段完成任务时。