笔记库放在哪里
哪些存储位置不兼容 FLO.W Core,笔记库可以放在哪里,以及推荐的同步方式。
最后更新于
FLO.W Core 新建或移动笔记时,目标位置已经有同名文件就会停下,不会盖掉它。这一步要靠存储支持硬链接,原理和自测方法见文末的 工作原理。
会失败的操作
笔记库放在不支持硬链接的位置时,下面几项操作会失败。
- 新建日笔记、周笔记和模板
- 速记写入日笔记
- 自动路由把笔记移到对应文件夹
不兼容的位置
- 格式为 exFAT 或 FAT32 的 U 盘和移动硬盘,大多数 U 盘出厂就是这两种格式
- 在 Mac 访达里用「连接服务器」打开的 NAS 文件夹
- Google Drive 电脑版的虚拟磁盘,在 Windows 上通常是 G 盘
还没验证的位置
下面这些位置还没有完整测试,暂时不建议放笔记库。
- Windows 上打开的 NAS 共享文件夹
- 设成「按需下载」的 OneDrive 文件夹
- Dropbox 文件夹
- 用 WebDAV 挂载成磁盘的网盘
放在本机硬盘
笔记库放在电脑本机的硬盘里。
只在 Mac、iPhone 和 iPad 之间同步时,笔记库也可以放在 iCloud 云盘里,做法见 iCloud 设置。
挪到本机硬盘
笔记库已经放在不兼容的位置时,按下面的步骤挪到本机硬盘。
- 退出 Obsidian
- 把整个笔记库文件夹复制到本机硬盘。要复制的是打开后能直接看到「笔记」「项目」「任务」的那一层文件夹
- 打开 Obsidian,点击左下角的笔记库名字,选择「管理仓库…」,再点「打开本地仓库」,选中刚复制过来的文件夹
- 确认笔记、模板和日笔记都在,原来的文件夹可以留作备份
推荐的同步方式
优先用 Obsidian 官方同步。每台设备的笔记库都放在本机硬盘,由官方同步在设备之间传,设置方法见 官方同步。
不用官方同步时,可以在 选择同步方案 里按设备和预算选一种。
同一个笔记库只开一种同步。两种同时开着,新建和移动笔记可能偶尔失败,见 只用一种同步方式。
工作原理
这一节写给有技术背景的读者,也可以把整节复制给 AI,让它帮你判断自己的存储能不能用。
FLO.W Core 写入笔记时守着一条底线,目标位置已经有同名文件,就停下并保留原来的文件。同步软件晚到的同名笔记,也按这条处理。
新建日笔记、周笔记和模板时,Core 先在同一个文件夹里用独占方式建一个临时文件,写完内容并落盘,再用 link 给它建一个硬链接作为正式文件,最后删掉临时文件。目标已经存在时 link 一定失败,所以已有文件不会被盖掉,正式文件出现时内容也已经完整。
自动路由移动笔记、新建笔记按模板改名时,Core 仍然通过 Obsidian 的文件管理来改名,双链照常更新,只替换其中真正搬文件的那一步。Core 先在插件目录的暂存文件夹里试建一个硬链接,确认存储支持,再把原文件移进暂存文件夹并留下恢复记录,然后用 link 把它链接到目标位置。目标已有同名文件时,原文件放回原处。中途退出时,下次启动按恢复记录检查,没搬完的笔记放回原处。
Core 不用普通的 rename。rename 遇到同名目标会直接覆盖,先检查再改名又留着时间差,同步软件正好在这个间隙写入同名文件,内容就会被盖掉。
存储不支持硬链接时,link 会报错,Core 就停下这次操作,不改用会覆盖的写法。常见的报错有两种。
- Windows 上的 exFAT 磁盘和 Google Drive 电脑版虚拟盘报
EISDIR。这个代码来自 Node 对系统错误ERROR_INVALID_FUNCTION的归类,和文件夹无关 - Mac 上的 exFAT、FAT32 磁盘和用 SMB 打开的 NAS 报
ENOTSUP
想确认自己的存储支不支持硬链接,可以在笔记库文件夹里试建一个。第三行没有报错就说明支持,第四行会删掉测试文件。
Mac 打开「终端」,依次运行下面几行。第三行报 Operation not supported 说明不支持。
cd "笔记库文件夹的路径"
touch flow-link-test
ln flow-link-test flow-link-test-2
rm -f flow-link-test flow-link-test-2Windows 打开「命令提示符」,依次运行下面几行。第三行显示「创建了硬链接」说明支持,显示「函数不正确。」说明不支持。
cd /d "笔记库文件夹的路径"
type nul > flow-link-test
mklink /H flow-link-test-2 flow-link-test
del /q flow-link-test flow-link-test-2 2>nul