5.5 `claude -c` - 继续最近的对话
第 5 章 · CLI 命令详解 · 第2部分:命令参考
claude -c 命令允许您继续最近的对话会话。这在您意外关闭了 REPL 或想要继续之前的工作时非常有用。
命令语法#
bash复制claude -c [选项]
功能描述#
-c(--continue)标志会加载当前目录中最近的对话会话,并启动 REPL。这允许您:
- 恢复意外中断的对话
- 继续之前的工作
- 保持对话上下文
- 避免重复之前的查询
使用示例#
基本用法#
bash复制claude -c
加载最近的对话会话并启动 REPL。
结合初始查询#
bash复制claude -c "继续优化这个函数"
加载最近的对话,并立即继续优化函数的任务。
指定模型#
bash复制claude -c --model claude-4-opus
使用指定的模型继续最近的对话。
添加额外的工作目录#
bash复制claude -c --add-dir ../tests
加载最近的对话,并添加额外的工作目录。
会话保存机制#
Claude Code 会自动保存对话会话,以便后续恢复:
保存位置#
会话保存在以下位置:
- 本地会话:保存在项目目录的
.claude/sessions/子目录 - 用户会话:保存在用户主目录的
.claude/sessions/子目录
会话命名#
会话通常以以下方式命名:
- 时间戳:包含会话创建或最后修改的时间
- 会话 ID:唯一的标识符,用于精确恢复
- 摘要:对话的简要描述(如果可用)
会话内容#
保存的会话包含:
- 对话历史
- 上下文信息
- 工具调用记录
- 配置状态
- 文件访问记录
使用场景#
1. 意外中断#
bash复制# 意外关闭了 REPLclaude -c
恢复意外中断的对话。
2. 跨天工作#
bash复制# 第二天继续前一天的工作claude -c "继续昨天的任务"
继续前一天未完成的工作。
3. 切换任务#
bash复制# 完成一个任务后,开始另一个任务claude -c "开始新任务"
切换到不同的任务,同时保持之前的上下文。
4. 多项目工作#
bash复制# 在项目 A 中工作cd /path/to/project-a claude -c # 切换到项目 Bcd /path/to/project-b claude -c
在不同项目之间切换,每个项目保持独立的对话上下文。
会话管理#
查看可用会话#
虽然 claude -c 默认加载最近的会话,但您可以通过以下方式查看所有可用会话:
- 查看会话目录:
bash复制ls -la .claude/sessions/
bash复制claude --resume
这会显示可用会话列表,让您选择要恢复的会话。
清理旧会话#
定期清理旧会话可以释放磁盘空间:
bash复制# 删除超过 7 天的会话find .claude/sessions/ -mtime +7 -delete
注意事项#
与其他恢复命令的对比#
| 命令 | 恢复方式 | 选择性 | 适用场景 |
|---|---|---|---|
claude -c | 最近会话 | 否 | 快速继续最近的工作 |
claude --resume | 交互选择 | 是 | 选择特定会话恢复 |
claude -r "id" | 指定 ID | 是 | 精确恢复特定会话 |
最佳实践#
1. 结合版本控制#
bash复制# 在Git提交前保存会话gitadd.git commit -m "重构用户认证模块"
将代码变更与会话状态同步记录。
2. 清理策略#
bash复制# 删除超过 7 天的会话find .claude/sessions/ -mtime +7 -delete
定期清理旧会话,避免磁盘空间浪费。
常见问题#
Q: 如何查看会话的详细信息?#
A: 可以查看会话目录中的文件,或使用 claude --resume 交互式选择会话。
Q: 恢复的会话与原会话完全一样吗?#
A: 基本一样,但某些临时状态可能无法完全恢复。
Q: 可以恢复其他目录的会话吗?#
A: 不可以,-c 只会加载当前目录中的会话。要恢复其他目录的会话,需要切换到该目录或使用 -r 命令。
Q: 会话会占用多少磁盘空间?#
A: 这取决于对话的长度和复杂度,通常在几 KB 到几 MB 之间。
相关命令#
claude:启动新的交互式 REPLclaude --resume:交互式选择并恢复会话claude -r "id":按 ID 恢复会话/clear:清除对话历史/exit:退出 REPL
实际应用示例#
工作流恢复#
sh复制#!/bin/bash # 检查是否有最近的会话 if [ -d .claude/sessions/ ]; then # 恢复最近的会话 claude -c "继续之前的工作" else # 启动新的会话 claude "开始新任务" fi
多项目管理#
bash复制#!/bin/bash# 项目列表projects=("project-a""project-b""project-c") # 选择项目echo"选择项目:"selectprojectin"${projects[@]}";docd"/path/to/$project" claude -c "在 $project 中工作"breakdone
通过 claude -c,您可以无缝地继续之前的工作,提高工作效率,避免重复之前的查询和上下文设置。