删除 Google Chrome 上超过 150,000 个书签中的重复项

删除 Google Chrome 上超过 150,000 个书签中的重复项

我想我尝试了 Chrome 网上应用店里的所有书签管理应用,手动删除了部分书签(是的,我甚至尝试过),将它们组织到文件夹中,但是每次我启动 Chrome 时它们都会再次出现。

如果你想知道我怎么会有 150,000 个书签,我也不确定。我只知道它们最初是从 Firefox 导入的,包括 StumbleUpon 书签等,而且它们似乎在每次同步时都会自我复制,大概从 2009 年开始。其中还有很多空文件夹,每次我查看书签时,它们的数量似乎也在增加。

现在我正在运行 AM-DeadLink,它已经尝试删除重复项大约 10 个小时了,而且我不确定它是否还能起作用,因为 AppData/Local/Google/Chrome 中的书签文件大小还没有从 51mb 下降。

我不想删除所有书签,因为里面有重要的东西。我需要彻底删除所有重复项。有什么想法吗?


编辑:因此,一年后,问题仍然存在,现在我又有另一个问题:

目前我的帐户中共有 151739 个书签,Chrome Sync 会显示,但 Chrome Sync 下的类别无法单独编辑或删除。我得到的唯一编辑选项是删除整个同步数据。

我想只删除书签,暂时保留其余内容,直到我弄清楚要保留哪些内容。如何删除书签而不触及其他内容?可以吗?

答案1

我自己也在处理这个问题。我有 26 万个书签,其中绝大多数都是“幻影”——没有名字的文件夹、很多重复的文件夹等等。每次我启动 Chrome,它都会消耗很多 GB 的 RAM,这真的影响了我的工作效率。

我决定删除所有坏书签,但为了使更改“生效”,我必须彻底清除 Chrome 同步数据的云副本。我没有快速解决方案,但我相信以下方法有效。

我首先从一台拥有 Chrome 数据完整副本的计算机开始。我备份了包含所有数据的配置文件目录。(请参阅Google Chrome 的用户配置文件目录位于哪里?)。

我启动了 Chrome,等待它稳定下来,然后进入 Chrome 的设置并关闭同步。然后我去了https://www.google.com/settings/chrome/sync并点击“停止并清除”,这将禁用同步并从 Google Cloud 中删除您的所有 Chrome 配置文件数据(包括所有重复和幻影书签),但它仍应将您的 Chrome 配置文件存储在此计算机上。

我使用书签管理器手动删除了所有幻影书签。幸运的是,我的大部分书签都被组织到重复文件夹中,因此我只需要删除十几个。但这仍然花了很长时间。大量的幻影书签让 Chrome 变得非常慢——我右键单击其中一个重复文件夹,有时需要几分钟才能出现带有“删除”选项的菜单。

因此,在删除了那台机器上的所有书签后,我退出了 Chrome,以便让它有机会恢复。我重新启动了 Chrome,进入设置并重新打开同步。它上传了剩余的书签以及仍保存在那台电脑上的密码等。

现在,在每台其他计算机上,我退出 Chrome,将我的 Chrome 配置文件数据移至垃圾箱(因为配置文件的那些副本仍然包含所有幻影书签),重新启动 Chrome,登录,然后等待同步可以恢复我的所有信息。

仅供参考:我一直在寻找一种方法来强制 Chrome 立即同步所有内容。我找到了很多合理的建议,但到目前为止,它们都不起作用。有时同步需要几分钟或几小时才能完成,想想看。

答案2

测试了所有建议后,似乎使用书签管理器手动删除所有重复的书签是最可靠的(与上面 Garrett Mitchener 的回复中详述的行为和解决方案相同。)

主要的症结在于确保仅有的重复项已删除。换句话说,获取书签管理器中唯一书签的列表,以便在清理后进行比较。

使用 Ubuntu Trusty 上的标准 Linux 工具效果很好:

备份书签文件,以防万一某个文件夹被意外删除:

$ cp -av .config/google-chrome/Default/Bookmarks{,.orig} ‘.config/google-chrome/Default/Bookmarks’ -> ‘.config/google-chrome/Default/Bookmarks.orig’

获取所有 URL 的数量:

$ grep -c '"url": ' .config/google-chrome/Default/Bookmarks

获取所有唯一 URL 的数量:

$ grep '"url": ' .config/google-chrome/Default/Bookmarks | awk '{print $2}' | sort | uniq | wc -l

将 grep 管道传输到 awk 比单独使用 awk 匹配要快得多,并且必须将 awk 管道传输到 sort 中才能准确获取唯一的条目。

将它们全部粘贴到一个文件中,同时还可以修剪掉多余的双引号:

$ grep '"url": ' .config/google-chrome/Default/Bookmarks | awk '{print $2}' | sort | uniq | sed 's/^"//;s/"$//' > Bookmarks-Original.txt

在书签管理器中执行清理,然后从书签文件中提取所有唯一的 URL:

$ grep '"url": ' .config/google-chrome/Default/Bookmarks | awk '{print $2}' | sort | uniq | sed 's/^"//;s/"$//' > Bookmarks-New.txt

运行比较:

$ for URL in $(cat Bookmarks-Original.txt); do grep -q $URL Bookmarks-New.txt || echo $URL; done > Bookmarks-Discrep.txt

现在可以搜索原始书签文件,提取原始的元数据并小心地添加回新的书签文件(首先备份最新文件),例如

{
            "date_added": "13026268601621410",
            [...]
            "url": "https://wiki.mozilla.org/Security/Server_Side_TLS"
         },

如果元数据不重要,则只需在书签管理器中为每个元数据创建新书签并移至相关文件夹即可。

答案3

我关闭了 Icloud 上的书签同步并删除了 chrome 中的 icloud 扩展。问题解决了。没什么大不了的,我在 iPhone 上不使用 Safari,但使用 chrome 作为我的默认浏览器,所以我仍然可以获得同步的书签。

答案4

我很喜欢 Google Chrome,但由于书签不断增加,我差点要换用其他浏览器。然而,我决定,如果尝试在多台设备上纠正问题,而不让同步功能发挥作用,可能会让事情变得更加复杂。我做的更改越多,情况就越糟。下面列出了我采取的步骤;48 小时后,我不再有重复的书签,并且所有内容在五台设备上都保持同步。

您必须删除每台设备上的所有书签,然后开始一组新的书签。

  • 禁用使用 Google 帐户的每台设备上的同步功能。Google 警告我们不要在公共电脑上打开 Chrome,因为该程序会驻留在这些电脑上。这可能是一个大问题,因为您如何纠正已经完成的操作?我决定希望一切顺利。
  • 在所有设备上断开与 Google 帐户的连接。您可以在以下位置查看已连接的设备:https://myaccount.google.com/u/1/device-activity
  • 在电脑上,书签管理器(Ctrl+Shift+O)是删除不需要的重复项的简单方法
  • 在一台设备上,对要保留的书签进行妥善备份。按 Ctrl+Shift+O 可进入书签管理器。在蓝色栏中,选择“组织”,然后选择“将书签导出到 HTML 文件...”,然后将生成的文件保存到以后可以找到的位置。
  • 暂时不要在任何设备上登录。
  • 从每台设备中彻底​​删除所有书签。书签管理器在 PC 上效果很好;但在某些设备上,可能需要卸载 Google Chrome 然后重新安装。确保您在任何设备上都没有书签。
  • 在一台设备上登录您的 Google 帐户(我更喜欢在 PC 上执行此操作)。
  • 导入您保存的包含好书签的文件。使用 Ctrl+Shift+O,组织,"从 HTML 文件导入书签..."
  • 仅在这台电脑上启用同步功能。我让电脑开机几个小时,以确保所有内容都已传输到 Google 服务器。
  • 在每台设备上登录您的 Google 帐户并激活同步功能。
  • 您已准备出发!!!
  • 只是不要在每台设备上疯狂地更改那么多书签。

我希望这有帮助。

如果这些说明确实准确,那么如果谷歌可以为数百万用户提供类似但格式更好的内容就太好了,因为这听起来是一个非常普遍的问题。

相关内容