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 中工作"恢復使用者選擇的專案會話。