5.7 claude -r "<session-id>" "query" - 按 ID 恢复会话
claude -r "<session-id>" "query" 命令允许您按会话 ID 恢复特定的对话会话,并在恢复的上下文中执行查询。
命令语法
bash
claude -r "<session-id>" "query" [选项]
功能描述
-r(--resume)标志允许您:
- 按会话 ID 精确恢复特定会话
- 在恢复的会话上下文中执行查询
- 保持对话的连续性和上下文
- 精确控制要恢复的会话
使用示例
基本用法
bash
claude -r "abc123" "继续这个任务"
恢复 ID 为 "abc123" 的会话,并继续执行任务。
代码审查
bash
claude -r "def456" "审查最新的代码变更"
恢复特定会话,并在该上下文中审查代码变更。
项目分析
bash
claude -r "ghi789" "分析这个项目的性能"
恢复特定会话,并在该上下文中分析项目性能。
结合其他选项
bash
claude -r "abc123" "完成任务" --model claude-4-opus
恢复指定会话,使用特定模型完成任务。
bash
claude -r "def456" "检查状态" --output-format json恢复指定会话,以 JSON 格式输出状态检查结果。
bash
## 获取会话 ID
### 方法1:查看会话目录
bash
ls -la .claude/sessions/这会列出所有保存的会话,包括会话 ID。
方法2:使用交互式恢复
bash
claude --resume
这会显示可用会话列表,包括会话 ID 和描述。
方法3:查看会话文件
会话文件名通常包含会话 ID:
bash
bash
ls -la .claude/sessions/ | grep session
这会显示所有包含会话 ID 的会话文件。
## 会话 ID 格式
会话 ID 通常是:
* **短字符串** :如 "abc123"、"def456"
* **唯一标识** :每个会话有唯一的 ID
* **可读性** :某些情况下可能包含描述性信息
## 使用场景
### 1\. 精确恢复
bash
# 知道要恢复的会话 ID
claude -r "abc123" "继续工作"精确恢复指定的会话。
2. 多会话管理
bash
# 在多个会话之间切换
claude -r "abc123" "任务1"
claude -r "def456" "任务2"
claude -r "ghi789" "任务3"
在不同的会话之间切换工作。
3. 协作恢复
bash
# 恢复团队成员分享的会话
claude -r "shared-session-id" "继续协作"
恢复共享的会话进行协作。
4. 长期项目
bash
# 恢复长期项目的会话
claude -r "project-alpha-session" "继续项目 Alpha"
恢复长期项目的会话,保持项目上下文。
会话选择策略
选择最近会话
如果您不确定要恢复哪个会话,可以:
- 查看会话列表
- 按时间排序
- 选择最近的会话
选择相关会话
根据当前任务选择最相关的会话:
- 查看会话描述
- 检查会话内容
- 选择最匹配的会话
选择活跃会话
优先选择最近活跃的会话:
- 查看最后修改时间
- 选择最近更新的会话
- 确保上下文是最新的
注意事项
- 会话存在 :确保指定的会话 ID 存在
- 会话位置 :
-r会从当前目录的会话目录查找会话 - 上下文相关 :查询应该与恢复的会话相关
- 会话更新 :新的查询会更新恢复的会话
- ID 大小写 :会话 ID 可能区分大小写
与其他恢复命令的对比
| 命令 | 选择方式 | 精确性 | 适用场景 |
|---|
claude -c| 自动(最近)| 低| 快速继续最近的工作 claude --resume| 交互选择| 中| 浏览并选择会话 claude -r "id"| 指定 ID| 高| 精确恢复特定会话
最佳实践
- 记录会话 ID :重要的会话 ID 可以记录下来,便于后续恢复
- 描述性会话 :在会话中使用描述性的查询,便于识别
- 定期清理 :定期清理不需要的会话,避免混淆
- 会话备份 :重要的会话可以备份,防止意外丢失
- 上下文保持 :确保查询与恢复的会话相关,充分利用上下文
## 常见问题
### Q: 如何知道要恢复哪个会话?
A: 可以使用 `claude --resume` 查看所有可用会话,或查看会话目录。
### Q: 会话 ID 会改变吗?
A: 会话 ID 在会话创建时生成,通常不会改变。
### Q: 可以恢复其他目录的会话吗?
A: 不可以,`-r` 只会从当前目录的会话目录查找会话。
### Q: 恢复的会话会覆盖当前会话吗?
A: 不会,恢复的会话和当前会话是独立的。
## 相关命令claude -c:继续最近的对话claude --resume:交互式选择并恢复会话claude -r "id":按 ID 恢复会话(不执行查询)/clear:清除对话历史
bash
## 实际应用示例
### 会话管理脚本
bash
#!/bin/bash
# 列出所有会话
echo "可用会话:"
ls -la .claude/sessions/ | grep session
# 选择要恢复的会话
read -p "输入会话 ID: " session_id
# 恢复会话
claude -r "$session_id" "继续工作"恢复用户选择的会话。
bash
### 多项目工作流
bash
#!/bin/bash
# 项目会话映射
declare -A sessions
sessions[project-a]="abc123"
sessions[project-b]="def456"
sessions[project-c]="ghi789"
# 选择项目
echo "选择项目:"
for project in "${!sessions[@]}"; do
echo "$project: ${sessions[$project]}"
done
read -p "输入项目名称: " project_name
# 恢复项目会话
claude -r "${sessions[$project_name]}" "在 $project_name 中工作"恢复用户选择的项目会话。