Obsidian知识库的目录与维护方式

早期使用Markdown加同步盘管理个人文档,最看重的是纯文本、可以随时更换编辑器,也不会被某个云笔记服务锁住。后来编辑器换成Obsidian,同步方式和目录也调整了几轮,但这个出发点一直没变。

现在这套知识库仍然只是一组本地Markdown文件。Obsidian负责编辑、搜索、双链和Base视图,同步工具负责多设备传输,Git负责留下可回退的版本。三者各做一件事,比把所有希望都压在某个插件上稳定得多。

目录按内容处境划分

目前根目录保持为七个入口:

1
2
3
4
5
6
7
00.Inbox/       临时收集和待整理内容
10.Notes/ 长期保留的主题笔记
20.Projects/ 项目、任务和阶段资料
30.Areas/ 需要持续维护的领域
40.Resources/ 摘录、提示词和可复用材料
50.Archive/ 已结束或低频查阅的资料
99.Assets/ PDF和通用附件

编号只是为了让顺序稳定,真正有用的是每个目录回答的问题不同。

项目中的会议记录、环境差异和处理过程会留在20.Projects,因为离开项目上下文后很容易被误解。经过复盘、能够跨项目复用的内容,才整理到10.Notes。已经结束的资料移入50.Archive,但默认不大规模重写,保留当时的背景比追求整齐更重要。

00.Inbox也不是永久仓库。临时内容先放进去没有问题,但有价值的部分最终要么进入长期笔记,要么回到项目,要么明确删除。否则它只会变成另一个名字更好听的下载目录。

索引页比无限细分目录更好用

技术笔记按大主题保留一层目录,每个主题增加一个很短的索引页。例如一个索引通常只有这些内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
---
type: note
status: stable
topic: 网络
tags:
- moc
---

# 网络索引

## 常用入口

- [[路由与转发]]
- [[防火墙]]
- [[隧道工具]]

索引页承担人工导航,能写清楚一组笔记为什么放在一起;Obsidian的Base则负责按属性动态筛选。两者不是替代关系:Base适合看“所有进行中的项目”,索引更适合进入某个主题时看到经过选择的入口。

这也避免了一个老问题:为了表达所有关系,不断增加目录层级。一篇笔记可能同时与网络、容器和安全有关,文件只能放在一个位置,但索引和双链可以从多个主题指向它。

front-matter只保留会用到的字段

Obsidian的Properties最终仍然存成文件顶部的YAML。当前常用字段是:

1
2
3
4
5
6
7
8
9
---
type: note
status: stable
created: 2026-05-30
updated: 2026-08-22
topic: 知识管理
tags:
- obsidian
---

不同目录只增加确实需要的字段:项目资料使用project,领域资料使用area,长期笔记和资源使用topicstatus也只保留少量固定值,例如draftactivestablereferencearchived

历史文件没有一次性补满属性。属性只有在搜索、Base过滤或维护规则中真正使用时才有价值;为了“看起来结构化”增加十几个长期为空的字段,只会让写笔记变慢。

链接先解决导航,不追求一张完美的图

重要主题会建立索引,相关笔记之间再补少量带说明的链接。相比在每篇文章末尾堆一串标题,直接说明关系更有用:

1
2
3
4
## 相关笔记

- [[WireGuard配置]]:这条隧道承载的内层协议。
- [[RouterOS防火墙]]:公网入口和转发规则。

反向链接和关系图可以帮助发现遗漏,但不会自动产生知识结构。两个文件互相链接,只说明它们有关;链接旁边为什么相关,才是以后重新找到它时最有用的信息。

移动或重命名文件时,由Obsidian自动更新内部链接。批量调整目录仍然会单独提交一次Git,这样外部Markdown链接、脚本引用或同步冲突出问题时还能看清改了什么。

附件没有只用一种规则

通用建议通常是把所有附件集中到一个目录,但实际使用后发现这不适合所有情况。现在图片优先放在笔记同目录的assets/子目录,移动整组笔记时正文和截图可以一起带走:

1
2
3
某篇笔记.md
assets/
某篇笔记-截图.png

PDF放进99.Assets/pdfs/,其他跨主题使用的文件放进99.Assets/files/。旧笔记中的历史附件不批量迁移,因为一次移动几百个文件带来的断链风险,通常大于目录变整齐的收益。

Obsidian支持把新附件放到当前文件旁的子目录,可以在“设置→文件与链接→新附件的默认位置”中配置。无论采用哪种规则,最好在大量粘贴截图之前确定下来。

同步不是版本历史

这套知识库日常通过同步工具在设备之间传输,Git只做版本保险。同步可以让几台设备看到同一份最新文件,也会很快传播误删和错误覆盖;Git则用来查看差异、恢复文件和确认一次整理到底改了哪些内容。

日常顺序是先等同步完成,再开始编辑;一组相关整理完成后提交一次Git。多台设备同时修改同一文件时,先处理同步冲突,不在冲突未解决时继续批量提交。

.obsidian也不需要全收或全丢。插件列表、主题、快捷键等可复现配置可以纳入版本管理,workspace.json和移动端工作区这类界面状态则忽略。大附件是否进入Git要单独考虑,不能因为Markdown文件很小,就假设整个知识库永远适合普通Git仓库。

给自动化工具留一份维护约定

知识库开始由脚本或AI辅助整理以后,根目录增加了AGENTS.md。它不负责介绍知识内容,只约束维护动作:

  • 不随意删除、移动或合并原始笔记。
  • 大规模调整前先说明范围,小步修改并保留Git差异。
  • 敏感笔记只整理结构,不主动摘要到更公开的位置。
  • 重复内容先建立索引和关联,再决定是否合并。
  • 不强行为所有文件补标签和front-matter。

这份约定比一段临时提示词更可靠。工具换了以后,新工具仍然可以先读同一个文件,了解哪些内容允许修改、哪些操作必须停下来确认。

没有采用的做法

Daily Note没有作为所有内容的最终归宿,也没有安装大量插件来替代目录和文件名。当前真正离不开的仍然是文件浏览、全局搜索、快速切换、Properties、反向链接和Bases等基础能力。

模板也保持很少。新文件只带日期、类型和状态,正文结构按内容决定。部署记录、故障排查、项目过程和资料摘录本来就不应该长成同一个样子。

知识库规模变大以后,稳定来自几个很普通的习惯:文件仍然可以脱离Obsidian阅读,目录变化可回退,索引有人维护,敏感内容不会因为自动整理跑到错误的位置。其他功能都可以等确实遇到问题时再增加。

参考资料