最近做了个小工具 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 本质上没有离开这个范畴,但同时它也是我目前投入精力最多的个人项目之一, 也具有一定的通用性,所以还是希望它在将来能成为一个成熟的正式项目。
目前初版的需求(我自己会用到的功能)已经实现得差不多,只剩下一些细枝末节。 接下来相当长的一段时间里,工作的重心会放在补充测试用例、完善用户手册上。 至于新需求,大概会综合考虑社区呼声(假如存在)和个人喜好来做吧。
作为业余开发者,项目中难免会有很多不专业的地方。欢迎大佬在技术上给出建议, 助力项目变得更好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.