最近做了个小工具 BookmarkFS ,其功能是将浏览器书签挂载到文件系统, 从而可以使用文件管理的工具和技巧来管理书签。
目前支持在 GNU/Linux 和 FreeBSD 上运行,可以操作 Firefox 和 Chromium 的书签。 将来可能会加入对更多操作系统和浏览器的支持。
项目主页:https://www.nongnu.org/bookmarkfs/
# 挂载 Firefox 书签
# - 将 <profile-name> 替换为实际的用户配置目录名称
# - 为避免丢失数据,建议先备份
# - 如果当前有 Firefox 实例在该用户配置下运行,需要先将其关闭
mount.bookmarkfs -o backend=firefox,rw \
~/.mozilla/firefox/<profile-name>/places.sqlite \
/mnt/firefox
# 切换当前工作目录为 Firefox 「其他书签」目录
cd /mnt/firefox/bookmarks/unfiled
# 将当前目录下收藏的所有 V2EX 的帖子移动到名为「 V2EX 」的子目录中
find . -type f \
-exec grep -l v2ex.com/t/ {} \; \
-exec mv {} ./v2ex \;
# 删除「 Read Later 」目录下所有 URL 重复的书签(保留第一个)
# - 这里用到的 fdupes 程序通常可以使用包管理器安装,
# 也可以到 <https://github.com/adrianlopezroche/fdupes> 下载。
fdupes -dN ./Read\ Later
# 挂载 Chromium 书签(注意事项同 Firefox )
mount.bookmarkfs -o backend=chromium,rw \
~/.config/chromium/<profile-name>/Bookmarks \
/mnt/chromium
# 将 Firefox 书签栏中名为「 work 」的目录全量复制到 Chromium 的书签栏
cp -R /mnt/firefox/bookmarks/toolbar/work \
/mnt/chromium/bookmarks/Bookmarks\ bar
# 解除挂载
umount /mnt/chromium
umount /mnt/firefox
当然,管理书签的方式不仅限于 shell 脚本和命令行工具的组合。 对于逐一手动处理书签的场景,可以尝试 TUI 文件管理器,比如 ranger/nnn/yazi 等, 搭配上合适的快捷键和插件,往往更加高效。
此外,大部分通用编程语言的标准库都提供了操作文件系统的功能。 如果有复杂或者特殊的书签管理需求,可以自行编写程序实现。 同理,也可以接入 MCP ,让 LLM 辅助管理书签(不过需要注意隐私问题)。
有关更多 BookmarkFS 的使用说明,详见用户手册。
其实本来打算等项目进入一个更稳定的阶段再来发帖。 不过由于近期一不留神上榜了 sourcehut 的 featured projects ,一时心血来潮, 那就趁还没被其他新项目顶下首页,顺势发布第一个 alpha release , 然后稍作宣传。
说来有点不好意思,我虽然接触编程多年,但至今没一个能拿得出手的作品。 个人主页上挂着的几个所谓「个人项目」,也只不过是一些玩具、练手、自用的小玩意, 觉得其他人可能感兴趣,就随手分享出来。
BookmarkFS 本质上没有离开这个范畴,但同时它也是我目前投入精力最多的个人项目之一, 也具有一定的通用性,所以还是希望它在将来能成为一个成熟的正式项目。
目前初版的需求(我自己会用到的功能)已经实现得差不多,只剩下一些细枝末节。 接下来相当长的一段时间里,工作的重心会放在补充测试用例、完善用户手册上。 至于新需求,大概会综合考虑社区呼声(假如存在)和个人喜好来做吧。
作为业余开发者,项目中难免会有很多不专业的地方。欢迎大佬在技术上给出建议, 助力项目变得更好。
![]() |
1
Pipecraft 165 天前
很酷的想法。想起之前看到的一篇把浏览器书签和文件系统结合的文章。
https://afewthingz.com/browserbookmark |
2
WorseIsBetter OP @Pipecraft #1
见过不少人用这种朴素的方式来做浏览器书签。 比如我学生时代的一位舍友,他的浏览器书签存放在一堆 HTML 文件里,通过 meta http-equiv="refresh" 跳转到对应 URL 。起一个 nginx 就可以在浏览器里访问了。 问他为什么这么搞,他说这样既能直接在浏览器里访问,也能够方便地与个人笔记进行关联(他自己写了个 Emacs 插件配合 org-mode 来做笔记)。而且用这种方式存储,搜索和管理起来也比在浏览器中方便。 其实我做这个工具,某种程度上也受到了这些用户的启发(虽然我自己的需求和他们不太一样)。 ---- 题外话,早期的某些浏览器,比如 IE ,也是用这种方式原生存储书签的,一个书签一个 .url 文件,同时用本地文件系统的目录结构来组织书签的目录结构。 |
![]() |
3
Pipecraft 165 天前
|