6.18 --continue - 加载最近的对话
概述
--continue 标志允许您加载并继续最近的对话会话。这是快速恢复工作的便捷方式,无需记住会话 ID。
bash
## 基本语法
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" ]; then
echo "继续最近的会话: $RECENT_SESSION"
claude --continue
else
echo "没有最近的会话,创建新会话"
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" ]; then
SESSION_ID=$(cat .claude/session)
echo "恢复会话: $SESSION_ID"
claude --resume "$SESSION_ID"
else
echo "继续最近的会话"
claude --continue
fi
## 实际应用示例
### 示例 1: 日常开发流程
bash
#!/bin/bash
# daily-dev-flow.sh
# 检查是否有项目特定的会话
if [ -f ".claude/project-session" ]; then
PROJECT_SESSION=$(cat .claude/project-session)
echo "恢复项目会话: $PROJECT_SESSION"
claude --resume "$PROJECT_SESSION"
else
echo "继续最近的会话"
claude --continue
fi
### 示例 2: 多项目工作流
bash
#!/bin/bash
# multi-project-flow.sh
PROJECT=$1
# 检查项目会话
if [ -f ".claude/$PROJECT-session" ]; then
SESSION_ID=$(cat ".claude/$PROJECT-session")
echo "恢复项目 $PROJECT 的会话"
claude --resume "$SESSION_ID"
else
echo "继续最近的会话"
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=$1
claude --session-id "task-$NEW_TASK-$(date +%Y%m%d-%H%M%S)"
# 稍后可以恢复之前的会话
# claude --resume $(cat .claude/last-session)
### 示例 4: 工作日志
bash
#!/bin/bash
# work-log.sh
LOG_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 <ID>| 加载指定的会话| 恢复特定会话
bash
### 使用建议
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 | while read session; do
claude --delete-session "$session"
done
echo "旧会话已清理"
### 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=$1
if [ -f ".claude/marked-$MARK" ]; then
SESSION_ID=$(cat ".claude/marked-$MARK")
claude --resume "$SESSION_ID"
else
echo "没有找到标记为 $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 <会话ID>`。
### Q4: 会话会自动保存吗?
A: 是的。会话会自动保存,除非显式删除。
### Q5: 如何避免意外继续错误的会话?
A: 使用 `--resume <会话ID>` 明确指定要恢复的会话。
## 与其他标志的组合示例
### 1\. 完整的工作流程
bash
#!/bin/bash
# complete-workflow.sh
# 检查是否有项目会话
if [ -f ".claude/project-session" ]; then
SESSION_ID=$(cat .claude/project-session)
echo "恢复项目会话"
claude --resume "$SESSION_ID"
else
echo "继续最近的会话"
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" ]; then
SESSION_ID=$(cat ".claude/$PROJECT-session")
claude --resume "$SESSION_ID"
else
echo "没有找到项目 $PROJECT 的会话,继续最近的会话"
claude --continue
fi
### 3\. 任务跟踪
bash
#!/bin/bash
# task-tracking.sh
TASK=$1
# 记录任务开始
echo "$(date): 开始任务 $TASK" >> task-log.txt
# 继续最近的会话
claude --continue
# 记录任务结束
echo "$(date): 结束任务 $TASK" >> task-log.txt