Skip to content

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

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