文件夹同名=自动搬家?Auto Note Mover 把我文件整不会了
⚠️ 剧透预警
根因一句话:「复盘」文件夹在根目录和「网站展示/」下重名了。Auto Note Mover 只看文件夹名,不看路径——排除项还不递归保护子目录。结果就是你在网站展示版精修的文件,一编辑就被插件搬到根目录的复盘/去了,跟原始版本挤在一起。解决方案:把网站展示版重命名为「复盘日志」,命名不同,永不冲突。
不是 Bug,是 Feature 的副作用
Auto Note Mover 是 Obsidian 里一个挺好用的插件:给文件加个 #复盘 标签,它就自动把文件搬到 复盘/ 文件夹里,不用手动拖来拖去。
然而——
我在根目录有一个 复盘/ 文件夹(放知识库日常复盘),在 网站展示/ 下面也有一个 复盘/ 文件夹(放要发布到数字花园的精修版复盘日志)。两个文件夹同名,但用途不同,内容也不同。
Auto Note Mover 的逻辑很简单:
检测到文件有
#复盘标签 → 移动到复盘/文件夹
它根本不关心你是 复盘/ 还是 网站展示/复盘/。插件规则里写的是文件夹名称,不是文件夹路径。
排除列表为什么不保护我?
我最初试了排除项:
{
"folder": "网站展示"
}心想:把 网站展示/ 排除掉,它下边的东西就不会被动了。
然而 Auto Note Mover 的排除逻辑不递归到子目录。 排除的是 网站展示/ 这个物理路径,但 网站展示/复盘/ 作为一个独立文件夹,在插件眼里是两回事。
排除项不递归,规则项只认名称——双重暴击。
案发现场
这是一个典型的「积累型 Bug」——不是一下子坏掉的,而是慢慢恶化的。
- 第 1 天:在
网站展示/复盘/里写完一篇文章,tag 是#复盘 - 回头一看:文件跑到
复盘/里去了 - 手动拖回来:哦,可能是我操作失误吧
- 第 2 天:编辑了一下,又跑了
- 第 N 次:算了,它跑过去就在那边改吧
- 直到今天:打开
复盘/发现 10 个文件,打开网站展示/复盘/只剩 3 个——大部分网站精修版已经被慢慢吞光了
差一点就「温水煮青蛙」式地吞完所有网站展示内容。
修复方案
方案出奇地简单——你的直觉也是对的:
既然同名冲突,那就改个不同的名字。
| 操作 | 做了什么 |
|---|---|
| ① 文件夹重命名 | 网站展示/复盘 → 网站展示/复盘日志 |
| ② 排除项加固 | Auto Note Mover 排除列表新增 网站展示/复盘日志(双重保险) |
| ③ 文件归位 | 把已被吞的 4 个网站版文件移回原处 |
重命名后,Auto Note Mover 的规则匹配规则是 tag:#复盘 → 文件夹"复盘",而你的文件在 复盘日志/ 里——名字不同,永不相干。
排除项加上,哪怕插件更新了什么递归逻辑也盯不住你。
复盘里的复盘
- 同名字段/文件夹永远是坑。 不管是编程里的变量名冲突,还是文件系统里的同名文件夹——只要系统有「按名称匹配」的逻辑,重名就是地雷。
- 排除项的递归保护别默认相信。 很多插件的排除逻辑只保精确路径,不保子目录。安全做法:显式排除每一个相关层级。
- 「积累型 Bug」很难第一时间发现。 它不像「页面崩了」那样立刻尖叫,而是「嗯?文件位置好像不太对」——然后就忘了。以后遇到类似「丢文件但好像又没丢」的情况,及早根因排查。
- 最终方案比想象中简单。 人容易倾向于在现有框架里修修补补(「能不能让排除列表递归?」),但换个名字成本更低、更彻底、零副作用。简胜于繁。
后记:写完这篇文章保存的时候,如果它自己又跑到 复盘/ 里去了……说明我们还有 Bug 没修。但应该不会了。