用途
Obsidian 的仓库(vault)本质上就是磁盘上的一个普通文件夹,笔记为纯文本 Markdown,可用任意编辑器修改。本技能说明如何通过 obsidian-cli 对 Obsidian 仓库进行自动化操作,并介绍了仓库的典型结构。
仓库结构(典型)
- Notes:*.md(纯文本 Markdown,可用任意编辑器编辑)。
- Config:.obsidian/(工作区与插件设置,通常不建议由脚本改动)。
- Canvases:*.canvas(JSON)。
- Attachments:在 Obsidian 设置中选择的任意文件夹(图片/PDF 等)。
查找活动仓库
Obsidian 桌面版在此处记录仓库(事实来源):
~/Library/Application Support/obsidian/obsidian.json
obsidian-cli 从该文件解析仓库;仓库名称通常是文件夹名(路径后缀)。
快速判断“哪个仓库是活动的 / 笔记在哪里”
- 若已设置默认仓库:obsidian-cli print-default --path-only
- 否则读取 ~/Library/Application Support/obsidian/obsidian.json,并使用带有 "open": true 的仓库条目。
注意事项
- 多个仓库很常见(iCloud 与 ~/Documents、工作/个人等)。不要猜测,应读取配置。
- 避免在脚本中硬编码仓库路径;优先读取配置或使用 print-default。
obsidian-cli 快速开始
设置默认仓库(一次):
obsidian-cli set-default "<vault-folder-name>"
查看默认仓库:
obsidian-cli print-default / obsidian-cli print-default --path-only
搜索
- 按笔记名搜索:obsidian-cli search "query"
- 在笔记内容中搜索(显示片段与行号):obsidian-cli search-content "query"
创建
obsidian-cli create "Folder/New note" --content "..." --open
需要 Obsidian URI 处理程序(obsidian://…)正常工作(即已安装 Obsidian)。避免通过 URI 在“隐藏”点文件夹(如 .something/…)下创建笔记,Obsidian 可能会拒绝。
移动/重命名(安全重构)
obsidian-cli move "old/path/note" "new/path/note"
会在整个仓库中更新 [[wikilinks]] 和常见 Markdown 链接(这是相比 mv 的主要优势)。
删除
obsidian-cli delete "path/note"
在合适的情况下,优先直接编辑:打开 .md 文件并修改,Obsidian 会自动识别。