词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
💡 一句话总结:用 AI 批量重命名、分类归档、检索文件内容。

确保你已经完成以下事项:
分析现状 → 制定规则 → 批量执行| 工具 | 用途 | 关键参数/行为(可验证) |
|---|---|---|
list | 列出目录(树形结构) | path(绝对路径,可省略表示当前目录)、ignore(额外忽略 glob 列表);最多返回 100 个文件(源码:opencode/packages/opencode/src/tool/ls.ts:35~opencode/packages/opencode/src/tool/ls.ts:60) |
glob | 按模式查找文件(如 **/*.jpg) | pattern、path(可选);最多返回 100 条并按修改时间排序(源码:opencode/packages/opencode/src/tool/glob.ts:33~opencode/packages/opencode/src/tool/glob.ts:63) |
grep | 搜索文件内容(正则) | pattern、include;最多返回 100 条匹配并按修改时间排序(源码:opencode/packages/opencode/src/tool/grep.ts:88~opencode/packages/opencode/src/tool/grep.ts:92) |
bash | 执行命令 | workdir(可选,避免 cd && ...)、timeout(毫秒,默认 2 分钟:opencode/packages/opencode/src/tool/bash.ts:20~opencode/packages/opencode/src/tool/bash.ts:80);输出默认最多 30000 字符(源码:opencode/packages/opencode/src/tool/bash.ts:19~opencode/packages/opencode/src/tool/bash.ts:36) |
! 开头直接跑命令(官方:opencode/packages/web/src/content/docs/tui.mdx:46~opencode/packages/web/src/content/docs/tui.mdx:55)。@文件 引用会把文件内容注入上下文(官方:opencode/packages/web/src/content/docs/tui.mdx:30~opencode/packages/web/src/content/docs/tui.mdx:43)。| 需求 | 示例 |
|---|---|
| 批量重命名 | 照片按日期命名 |
| 分类归档 | 按类型分到不同文件夹 |
| 内容检索 | 找包含某关键词的文件 |
| 去重清理 | 删除重复文件(建议先 dry-run/列清单) |
也可以直接: opencode /path/to/project(官方:opencode/packages/web/src/content/docs/tui.mdx:16~opencode/packages/web/src/content/docs/tui.mdx:20)。
列出当前目录的文件和子目录(树形结构),并告诉我:
1. 大致有哪些子目录
2. 文件类型分布(图片/文档/压缩包等)
3. 哪些命名看起来像一类list.path 要求是绝对路径(参数描述:opencode/packages/opencode/src/tool/ls.ts:39~opencode/packages/opencode/src/tool/ls.ts:42)。list 最多返回 100 个文件;若目录很大,建议先用 glob 缩小范围(源码:opencode/packages/opencode/src/tool/ls.ts:35~opencode/packages/opencode/src/tool/ls.ts:60) 。查找所有图片文件(例如 jpg/png/gif),并按修改时间从新到旧列出查找所有 PDF 文件(**/*.pdf)glob 结果按修改时间排序(源码:opencode/packages/opencode/src/tool/glob.ts:54~opencode/packages/opencode/src/tool/glob.ts:55)。glob 最多返回 100 条;如果你只看到一部分结果,说明被截断了(源码:opencode/packages/opencode/src/tool/glob.ts:40~opencode/packages/opencode/src/tool/glob.ts:63)。分析这个目录的文件情况:
1. 有多少个文件和子目录(如果你拿不到精确数量,请说明原因)
2. 文件类型分布(图片、文档、视频等)
3. 命名规律分析
4. 建议的整理方案(先给“规则”,再给“执行步骤”)把这个目录下所有的图片文件按以下规则重命名:
- 格式:照片_YYYYMMDD_序号.扩展名
- 日期从文件修改时间获取
- 序号从 001 开始
要求:
1. 先只输出“将要修改的文件清单(旧名→新名)”,不要执行
2. 我确认后再执行permission 决定。permission 支持 allow/ask/deny(官方:opencode/packages/web/src/content/docs/permissions.mdx:14~opencode/packages/web/src/content/docs/permissions.mdx:18)。edit 权限覆盖写入/修改/patch 等文件变更类操作(官方:opencode/packages/web/src/content/docs/permissions.mdx:86~opencode/packages/web/src/content/docs/permissions.mdx:88)。ask:{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "ask"
}
}bash 在指定目录运行。bash.workdir 用来指定运行目录,避免 cd && ...(参数:opencode/packages/opencode/src/tool/bash.ts:62~opencode/packages/opencode/src/tool/bash.ts:67)。bash.timeout 单位是毫秒,默认 2 分钟(源码:opencode/packages/opencode/src/tool/bash.ts:20~opencode/packages/opencode/src/tool/bash.ts:80)。把这个目录下的文件按类型分类到子目录:
- 图片(jpg, png, gif)→ 图片/
- 文档(pdf, doc, docx, txt)→ 文档/
- 视频(mp4, mov, avi)→ 视频/
- 其他 → 其他/
要求:
1. 先展示分类结果让我确认
2. 再执行移动搜索包含“发票”的所有 txt 和 md 文件grep 使用正则表达式(参数:opencode/packages/opencode/src/tool/grep.ts:12~opencode/packages/opencode/src/tool/grep.ts:16)。opencode/packages/opencode/src/tool/grep.ts:88~opencode/packages/opencode/src/tool/grep.ts:92)。总结一下刚才的整理工作:
1. 重命名了多少文件
2. 移动了多少文件
3. 最终的目录结构全部通过才能继续
| 现象 | 原因 | 解决 |
|---|---|---|
| 文件被误删/误改 | 没先做清单/确认 | 先让 AI 输出“操作清单”,再执行 |
| 重命名规则不对 | 规则缺少可执行细节 | 补齐“格式/来源/序号/覆盖策略”等细节 |
只看到部分 list/glob/grep 结果 | 工具有返回上限(100 条) | 缩小范围:更具体的 path/pattern/include |
glob/grep 没搜到你以为存在的文件 | ripgrep 默认遵守 .gitignore | 参考官方的 .ignore 机制(官方:opencode/packages/web/src/content/docs/tools.mdx:348~opencode/packages/web/src/content/docs/tools.mdx:364) |
list 看不到某些目录 | list 额外内置了一批常见忽略目录 | 换用 glob/grep 直接定位;或查看 list 内置忽略列表(源码:opencode/packages/opencode/src/tool/ls.ts:8~opencode/packages/opencode/src/tool/ls.ts:33) |
| bash 命令在错误目录执行 | 没设置 workdir | 用 workdir 指定目录(源码:opencode/packages/opencode/src/tool/bash.ts:62~opencode/packages/opencode/src/tool/bash.ts:67) |
glob/grep/list 内部使用 ripgrep(官方:opencode/packages/web/src/content/docs/tools.mdx:348~opencode/packages/web/src/content/docs/tools.mdx:352),因此会遵守 .gitignore。list 工具还会额外忽略一批常见目录(源码:opencode/packages/opencode/src/tool/ls.ts:8~opencode/packages/opencode/src/tool/ls.ts:33),包括(去重后):node_modules/__pycache__/.git/dist/, build/, target/vendor/bin/, obj/.idea/, .vscode/.zig-cache/, zig-out.coverage, coverage/tmp/, temp/.cache/, cache/, logs/.venv/, venv/, env/.ignore 文件,显式允许某些路径被搜索(官方:opencode/packages/web/src/content/docs/tools.mdx:354~opencode/packages/web/src/content/docs/tools.mdx:364)。!node_modules/
!dist/
!build/| 主题 | 结论 | 证据 |
|---|---|---|
list 返回上限 | 最多 100 个文件 | opencode/packages/opencode/src/tool/ls.ts:35~opencode/packages/opencode/src/tool/ls.ts:60 |
list 内置忽略目录 | 有硬编码 ignore 列表 | opencode/packages/opencode/src/tool/ls.ts:8~opencode/packages/opencode/src/tool/ls.ts:33 |
glob 返回上限/排序 | 最多 100、按 mtime 排序 | opencode/packages/opencode/src/tool/glob.ts:33~opencode/packages/opencode/src/tool/glob.ts:63 |
grep 返回上限/排序 | 最多 100、按文件 mtime 排序 | opencode/packages/opencode/src/tool/grep.ts:88~opencode/packages/opencode/src/tool/grep.ts:92 |
bash 默认 timeout | 默认 2 分钟 | opencode/packages/opencode/src/tool/bash.ts:20~opencode/packages/opencode/src/tool/bash.ts:80 |
bash 输出截断 | 默认最多 30000 字符 | opencode/packages/opencode/src/tool/bash.ts:19~opencode/packages/opencode/src/tool/bash.ts:36 |
.gitignore/.ignore | ripgrep 默认遵守 .gitignore;.ignore 可显式 include | opencode/packages/web/src/content/docs/tools.mdx:348~opencode/packages/web/src/content/docs/tools.mdx:364 |
permission 行为 | allow/ask/deny;edit 覆盖写/改/patch | opencode/packages/web/src/content/docs/permissions.mdx:14~opencode/packages/web/src/content/docs/permissions.mdx:18; opencode/packages/web/src/content/docs/permissions.mdx:86~opencode/packages/web/src/content/docs/permissions.mdx:88 |
下一课我们将学习数据处理,用 AI 分析 CSV、JSON 并生成报表。