应导出safari书签为html,用vs code正则批量重写路径或人工剪切粘贴,删除原位置残留块后导入新文件,即可将分散书签按新顶层分类(如“工作”“学习”)精准重构。

你需要把Mac上Safari浏览器中分散在多个层级、命名混乱的书签,统一归入新规划的顶层分类文件夹(如“工作”“学习”“归档”),避免手动拖拽几十次导致路径错位或遗漏子文件夹。
导出HTML并定位待迁移的书签块
打开Safari → 点击菜单栏“文件” → 选择“导出书签…”,保存为Bookmarks.html。这一步必须做,因为只有导出后的HTML才保留完整嵌套结构,图形界面里你根本看不到哪些书签藏在三层子文件夹底下。
用VS Code或TextEdit(设为纯文本模式)打开该文件 → 按Command + F搜索你的目标书签标题,例如“2026年项目周报”。找到后向上翻,直到看见紧邻的
标签行——这就是它当前所属的文件夹名。
从这个
开始,向下选中整段内容,直到遇到下一个同级闭合标签为止。这一整块就是该文件夹的全部定义,包括它自己、所有直系书签和嵌套子文件夹。【必须完整复制整个块,漏掉
会导致后续导入时结构断裂】
在HTML中批量重写父级路径
方法一:用正则替换实现跨层级迁移
假设你想把所有位于“旧分类→临时整理→会议记录”路径下的书签,整体移到新文件夹“工作→会议”下。在VS Code中启用正则搜索(点击搜索框右下角.*图标):
搜索:<dt><h3>会议记录\s*<dl>[\s\S]*?</dl>
</h3></dt>
替换:<dt><h3>会议记录\n<dl>\n<dt><h3>工作\n<dl>\n<dt><h3>会议\n<dl>$&\n\n\n</dl>
</h3></dt>
</dl>
</h3></dt>
</dl>
</h3></dt>
注意:$&代表原匹配内容,确保原有书签和子结构不丢失。替换前务必先备份原HTML文件。
方法二:人工剪切粘贴(适合少于5个目标文件夹)
在HTML中定位到第一个要迁移的文件夹
- 块 → 全选并剪切 → 找到目标父文件夹(如
…
工作
)下方的- 起始位置 → 粘贴进去。重复此操作,每次粘贴前确认目标
- 标签未被意外闭合。
删除原位置残留并导入更新版
第一步:回到原始HTML文件,搜索所有被迁移走的父文件夹名(如“临时整理”),逐个删除其完整的
第二步:保存修改后的HTML文件,命名为Bookmarks_Restructured.html。
第三步:退出Safari(包括菜单栏小图标),防止导入时发生写入冲突 → 重新打开Safari → 点击“文件”→“导入书签”→ 选择刚保存的文件 → 导入位置选“个人收藏”。
导入完成后,所有书签将按你在HTML中重写的路径结构重建。【导入不会覆盖现有书签,而是新增一个完整树状结构;若需彻底替换,请先在书签管理器中删除“个人收藏”下所有内容再导入】











