Skip to content

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"

恢复长期项目的会话,保持项目上下文。

会话选择策略

选择最近会话

如果您不确定要恢复哪个会话,可以:

  1. 查看会话列表
  2. 按时间排序
  3. 选择最近的会话

选择相关会话

根据当前任务选择最相关的会话:

  • 查看会话描述
  • 检查会话内容
  • 选择最匹配的会话

选择活跃会话

优先选择最近活跃的会话:

  • 查看最后修改时间
  • 选择最近更新的会话
  • 确保上下文是最新的

注意事项

  1. 会话存在 :确保指定的会话 ID 存在
  2. 会话位置-r 会从当前目录的会话目录查找会话
  3. 上下文相关 :查询应该与恢复的会话相关
  4. 会话更新 :新的查询会更新恢复的会话
  5. ID 大小写 :会话 ID 可能区分大小写

与其他恢复命令的对比

命令选择方式精确性适用场景

claude -c| 自动(最近)| 低| 快速继续最近的工作 claude --resume| 交互选择| 中| 浏览并选择会话 claude -r "id"| 指定 ID| 高| 精确恢复特定会话

最佳实践

  1. 记录会话 ID :重要的会话 ID 可以记录下来,便于后续恢复
  2. 描述性会话 :在会话中使用描述性的查询,便于识别
  3. 定期清理 :定期清理不需要的会话,避免混淆
  4. 会话备份 :重要的会话可以备份,防止意外丢失
  5. 上下文保持 :确保查询与恢复的会话相关,充分利用上下文
## 常见问题

### 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 中工作"

恢复用户选择的项目会话。

基于 MIT 许可发布 | 永久导航