从places.sqlite文件中恢复书签

时间:2015-02-24 17:16:43

标签: sqlite firefox bookmarks

我在使用Firefox中的标准导出功能将Firefox中的数千个书签导出为HTML文件时遇到问题。我收到这个错误:

*************************
A coding exception was thrown and uncaught in a Task.

Full message: TypeError: root is undefined
Full stack: BookmarkExporter@resource://gre/modules/BookmarkHTMLUtils.jsm:980:1
BHU_exportToFile/<@resource://gre/modules/BookmarkHTMLUtils.jsm:228:22
TaskImpl_run@resource://gre/modules/Task.jsm:314:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:865:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:7

************************* 

请参阅https://gist.github.com/rubo77/12ef9be4060c7935c74c

有没有办法在控制台上导出我的书签,所以我可以将它们导入到新的firefox配置文件中?

更新:我设法将具有旧配置文件的firefox实例的“管理书签”菜单中的所有书签复制并粘贴到另一个实例中,同时打开新配置文件(使用命令行选项{{1} })。但不幸的是,这仍然没有复制用于书签的标签,这也将是一个巨大的损失。

1 个答案:

答案 0 :(得分:3)

书签保存在您的个人资料目录 [1] 下(例如,在Linux下类似于~/.mozilla/firefox/rbbfa46q.default的地方),存储在文件places.sqlite中,一个SQLite 3.x数据库。您可以将其作为每个SQLite数据库文件进行管理。

由于键中可能存在冲突,至少在原则上,我建议导出为html链接列表并在第二个firefox帐户后导入。

以下是一个实际上能够创建此列表的命令,如另一个答案 [2] 中所述。

sqlite3 places.sqlite "select '<a href=''' || url || '''>' || moz_bookmarks.title || '</a><br/>' as ahref from moz_bookmarks left join moz_places on fk=moz_places.id where url<>'' and moz_bookmarks.title<>''" > t1.html

然后你可以使用你觉得更舒适的导入方法。

注意

  • 当然有一个插件为&#34; SQLite Manager&#34; 来从Netscape内部管理它......