首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何“删除空书签文件夹”或“合并重复文件夹”

如何“删除空书签文件夹”或“合并重复文件夹”
EN

Stack Overflow用户
提问于 2017-07-02 18:13:06
回答 1查看 1.2K关注 0票数 1

在与XMarks+Firefox+Chrome+Android进行了多次错误的同步之后,我的书签文件夹完全搞砸了:我有重复的文件夹名,其中很多都是空的。

很明显,我一段时间前就不再使用Xmarks来阻止它破坏事物了。我不知道有多少书签不见了..。Xmarks有一个方便的书签同步历史,但是从那里修复所有的东西都太麻烦了(没有自动的方法)。

我在考虑手工编辑places.sqlite书签数据库..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-02 18:25:59

在寻找了一段时间之后,我决定手动修改places.sqlite火狐的书签数据库。

在下载了一个sqlite3客户端之后,当然还有备份了我的places.sqlite文件之后,我附带了以下查询。

在我的例子中,我并不特别了解与书签相关的描述、关键字或任何元数据。

1-创建一个具有一个id->文件夹名的辅助表:

代码语言:javascript
复制
CREATE TABLE ufld AS 
    SELECT min(id) AS id, title
    FROM moz_bookmarks
    group by title
    order by title;

2-创建另一个辅助表,其中每个书签都有它的父文件夹名和ufld名称(如果您想先查看的话,列数比需要的多):

代码语言:javascript
复制
CREATE TABLE bkm_fld_ufld AS 
SELECT 
    b.id AS bid, 
    b.parent AS bparent, 
    b.title AS btitle, 
    b.type AS btype,
    fld.id AS fid, 
    fld.parent AS fparent,
    fld.title AS ftitle,
    fld.type AS ftype,
    ufld.id AS ufldid,
    ufld.title AS ufldtitle
FROM moz_bookmarks b 
JOIN moz_bookmarks fld ON 
    fld.id = b.parent
JOIN ufld ON 
    ufld.title = fld.title;

3-使用辅助表更新书签(省略“特殊文件夹”):

代码语言:javascript
复制
UPDATE moz_bookmarks 
SET parent = (SELECT bkm_fld_ufld.ufldid 
              FROM bkm_fld_ufld 
              WHERE bkm_fld_ufld.bid = moz_bookmarks.id) 
WHERE guid NOT GLOB '*___';

4.清理:

代码语言:javascript
复制
DROP table ufld;
DROP table bkm_fld_ufld;

就这样,现在我可以在Firefox文件夹中复制places.sqlite,并享受刷新和清理过的书签。

如果有人想出了更好的办法,我听说.

火狐同步更新

如果启用了Firefox,那么它将尝试恢复标签,就像修改places.sqlite文件之前一样。

解决办法是:

  1. 从Firefox同步中断开Firefox
  2. 如前所述,修复places.sqlite
  3. 将固定书签导出到文件
  4. 连接到Firefox,等待它完成它的任务
  5. 删除所有书签
  6. 还原固定书签的备份文件

瞧..。Firefox现在用固定书签同步所有连接的设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44873822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档