6.18 --continue - 加载最近的对话
第 6 章 · CLI 标志说明 · 第2部分:命令参考
概述#
--continue 标志允许您加载并继续最近的对话会话。这是快速恢复工作的便捷方式,无需记住会话 ID。
基本语法#
bash复制claude --continue
使用场景#
1. 快速恢复工作#
bash复制# 快速恢复最近的对话claude --continue # 继续之前的工作
2. 中断后继续#
bash复制# 工作中断后,快速恢复claude --continue # 继续之前的任务
3. 日常开发#
bash复制# 每天开始工作时,恢复昨天的对话claude --continue # 继续开发
4. 快速回顾#
bash复制# 快速回顾最近的对话claude --continue # 查看上下文
高级用法#
1. 与其他标志组合#
bash复制# 继续对话 + 指定模型claude --continue --model opus # 继续对话 + 自定义系统提示claude --continue --system-prompt "你是一位 Python 专家" # 继续对话 + 限制工具claude --continue --allowedTools "Read""Grep"
2. 检查最近的会话#
bash复制#!/bin/bash# check-recent-session.sh# 查看最近的会话claude --list-sessions |head -1 # 继续最近的会话claude --continue
3. 条件继续#
bash复制#!/bin/bash# conditional-continue.sh # 检查是否有最近的会话RECENT_SESSION=$(claude --list-sessions |head -1) if[ -n "$RECENT_SESSION"];thenecho"继续最近的会话: $RECENT_SESSION" claude --continue elseecho"没有最近的会话,创建新会话" claude --session-id "new-session-$(date +%Y%m%d-%H%M%S)"fi
4. 自动恢复工作流#
bash复制#!/bin/bash# auto-resume-workflow.sh# 检查工作目录if[ -f ".claude/session"];thenSESSION_ID=$(cat .claude/session)echo"恢复会话: $SESSION_ID" claude --resume "$SESSION_ID"elseecho"继续最近的会话" claude --continue fi
实际应用示例#
示例 1: 日常开发流程#
bash复制#!/bin/bash# daily-dev-flow.sh # 检查是否有项目特定的会话if[ -f ".claude/project-session"];thenPROJECT_SESSION=$(cat .claude/project-session)echo"恢复项目会话: $PROJECT_SESSION" claude --resume "$PROJECT_SESSION"elseecho"继续最近的会话" claude --continue fi
示例 2: 多项目工作流#
bash复制#!/bin/bash# multi-project-flow.shPROJECT=$1# 检查项目会话if[ -f ".claude/$PROJECT-session"];thenSESSION_ID=$(cat".claude/$PROJECT-session")echo"恢复项目 $PROJECT 的会话" claude --resume "$SESSION_ID"elseecho"继续最近的会话" claude --continue fi
示例 3: 任务切换#
bash复制#!/bin/bash# task-switching.sh # 保存当前会话CURRENT_SESSION=$(claude --list-sessions |head -1)echo"$CURRENT_SESSION"> .claude/last-session # 切换到新任务NEW_TASK=$1claude --session-id "task-$NEW_TASK-$(date +%Y%m%d-%H%M%S)" # 稍后可以恢复之前的会话# claude --resume $(cat .claude/last-session)
示例 4: 工作日志#
bash复制#!/bin/bash# work-log.shLOG_FILE="work-log-$(date +%Y%m%d).log"# 记录开始工作echo"$(date): 开始工作">>"$LOG_FILE"# 继续最近的会话RECENT_SESSION=$(claude --list-sessions |head -1)echo"$(date): 恢复会话 $RECENT_SESSION">>"$LOG_FILE"claude --continue # 记录结束工作echo"$(date): 结束工作">>"$LOG_FILE"
与 --resume 的区别#
| 标志 | 行为 | 使用场景 |
|---|---|---|
--continue | 加载最近的会话 | 快速恢复工作 |
--resume | 加载指定的会话 | 恢复特定会话 |
使用建议#
bash复制# 快速恢复工作claude --continue # 恢复特定会话claude --resume session-abc123 # 查看会话列表后选择claude --list-sessions claude --resume chosen-session
会话管理技巧#
1. 定期清理#
bash复制#!/bin/bash# cleanup-sessions.sh# 保留最近 10 个会话claude --list-sessions |tail -n +11 |whileread session;do claude --delete-session "$session"doneecho"旧会话已清理"
2. 会话标记#
bash复制#!/bin/bash# mark-session.sh MARK=$1 # 标记最近的会话RECENT_SESSION=$(claude --list-sessions |head -1)echo"$RECENT_SESSION">".claude/marked-$MARK" echo"会话 $RECENT_SESSION 已标记为 $MARK"
3. 会话切换#
bash复制#!/bin/bash# switch-session.sh# 保存当前会话CURRENT_SESSION=$(claude --list-sessions |head -1)echo"$CURRENT_SESSION"> .claude/last-session # 切换到标记的会话MARK=$1if[ -f ".claude/marked-$MARK"];thenSESSION_ID=$(cat".claude/marked-$MARK") claude --resume "$SESSION_ID"elseecho"没有找到标记为 $MARK 的会话"fi
4. 会话历史#
bash复制#!/bin/bash# session-history.sh # 显示会话历史echo"会话历史:"claude --list-sessions |nl # 继续最近的会话echo""echo"继续最近的会话?(y/n)"read answer if["$answer"="y"];then claude --continue fi
常见问题#
Q1: --continue 和 --resume 有什么区别?#
A: --continue 自动加载最近的会话,--resume 需要指定会话 ID。
Q2: 如何知道最近的会话是什么?#
A: 使用 claude --list-sessions 查看会话列表,第一个就是最近的会话。
Q3: 可以继续几天前的会话吗?#
A: --continue 只能继续最近的会话。要继续其他会话,使用 --resume 。
Q4: 会话会自动保存吗?#
A: 是的。会话会自动保存,除非显式删除。
Q5: 如何避免意外继续错误的会话?#
A: 使用 --resume 明确指定要恢复的会话。
与其他标志的组合示例#
1. 完整的工作流程#
bash复制#!/bin/bash# complete-workflow.sh# 检查是否有项目会话if[ -f ".claude/project-session"];thenSESSION_ID=$(cat .claude/project-session)echo"恢复项目会话" claude --resume "$SESSION_ID"elseecho"继续最近的会话" claude --continue fi
2. 多项目切换#
bash复制#!/bin/bash# multi-project-switch.sh PROJECT=$1 # 保存当前会话CURRENT_SESSION=$(claude --list-sessions |head -1)echo"$CURRENT_SESSION"> .claude/last-session # 切换到项目会话if[ -f ".claude/$PROJECT-session"];thenSESSION_ID=$(cat".claude/$PROJECT-session") claude --resume "$SESSION_ID"elseecho"没有找到项目 $PROJECT 的会话,继续最近的会话" claude --continue fi
3. 任务跟踪#
bash复制#!/bin/bash# task-tracking.shTASK=$1# 记录任务开始echo"$(date): 开始任务 $TASK">> task-log.txt # 继续最近的会话claude --continue # 记录任务结束echo"$(date): 结束任务 $TASK">> task-log.txt