5.5 claude -c - 继续最近的对话
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
# 意外关闭了 REPL
claude -c
恢复意外中断的对话。
2. 跨天工作
bash
# 第二天继续前一天的工作
claude -c "继续昨天的任务"
继续前一天未完成的工作。
3. 切换任务
bash
# 完成一个任务后,开始另一个任务
claude -c "开始新任务"
切换到不同的任务,同时保持之前的上下文。
bash
### 4\. 多项目工作
bash
# 在项目 A 中工作
cd /path/to/project-a
claude -c
# 切换到项目 B
cd /path/to/project-b
claude -c在不同项目之间切换,每个项目保持独立的对话上下文。
会话管理
查看可用会话
虽然 claude -c 默认加载最近的会话,但您可以通过以下方式查看所有可用会话:
- 查看会话目录 :
bash
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提交前保存会话
git add .
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
bash
## 实际应用示例
### 工作流恢复
sh
#!/bin/bash
# 检查是否有最近的会话
if [ -d .claude/sessions/ ]; then
# 恢复最近的会话
claude -c "继续之前的工作"
else
# 启动新的会话
claude "开始新任务"
fi
### 多项目管理
bash
#!/bin/bash
# 项目列表
projects=("project-a" "project-b" "project-c")
# 选择项目
echo "选择项目:"
select project in "${projects[@]}"; do
cd "/path/to/$project"
claude -c "在 $project 中工作"
break
done通过 claude -c,您可以无缝地继续之前的工作,提高工作效率,避免重复之前的查询和上下文设置。