claude -r "<session-id>" "query" 命令允许您按会话 ID 恢复特定的对话会话,并在恢复的上下文中执行查询。
命令语法#
bash
功能描述#
-r(--resume)标志允许您:
- 按会话 ID 精确恢复特定会话
- 在恢复的会话上下文中执行查询
- 保持对话的连续性和上下文
- 精确控制要恢复的会话
使用示例#
基本用法#
bash
恢复 ID 为 "abc123" 的会话,并继续执行任务。
代码审查#
bash
恢复特定会话,并在该上下文中审查代码变更。
项目分析#
bash
恢复特定会话,并在该上下文中分析项目性能。
结合其他选项#
bash
恢复指定会话,使用特定模型完成任务。
bash
恢复指定会话,以 JSON 格式输出状态检查结果。
获取会话 ID#
方法1:查看会话目录#
bash
这会列出所有项目,名称格式如 -User-xxx-someproject.
接下来,进入对应的项目目录:
bash
这会列出所有保存的会话,通过文件名,我们就可以找出会话 ID。
方法2:使用交互式恢复#
bash
这会显示可用会话列表,包括会话 ID 和描述。
方法3: 查看历史记录文件#
bash
这会打印出历史会话,里面包含了sessionId,使用该id就可以恢复会话。
会话 ID 格式#
会话 ID 通常是:
- 短字符串:如 "abc123"、"def456"
- 唯一标识:每个会话有唯一的 ID
- 可读性:某些情况下可能包含描述性信息
使用场景#
1. 精确恢复#
bash
精确恢复指定的会话。
2. 多会话管理#
bash
在不同的会话之间切换工作。
4. 长期项目#
bash
恢复长期项目的会话,保持项目上下文。
会话选择策略#
选择最近会话#
如果您不确定要恢复哪个会话,可以:
- 查看会话列表
- 按时间排序
- 选择最近的会话
选择相关会话#
根据当前任务选择最相关的会话:
- 查看会话描述
- 检查会话内容
- 选择最匹配的会话
选择活跃会话#
优先选择最近活跃的会话:
- 查看最后修改时间
- 选择最近更新的会话
- 确保上下文是最新的
注意事项#
- 会话存在:确保指定的会话 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
恢复用户选择的项目会话。