如何从 Google Chrome 中删除旧历史记录?

如何从 Google Chrome 中删除旧历史记录?

我正在使用一台硬盘容量适中的笔记本电脑,其中 500MB 被 Google Chrome 的“历史索引”和“缩略图”文件占用。其中一些文件已有一年历史。Chrome 为我提供了删除最近的历史,但我想要相反的:我想删除老的历史。(理想情况下,我会删除最近最少使用的历史信息,但我不指望能够做到这一点。)

有人有什么想法吗?我正在运行标准 Debiangoogle-chrome-beta软件包。

答案1

谷歌真丢脸,还没有办法

除此之外,所有 Chrome 数据库都只是 sqlite3 文件,您可以使用 sqlite3 清除不需要的条目。首先,安装sqlite3客户端(sudo apt-get install sqlite3),然后转到 Chrome 配置(应该是.config/chrome/Default)。

下面是一个 SQL 代码片段,它可以从历史记录中清除旧的 URL(适用于数据库HistoryArchived History):

delete from urls where last_visit_time <= (strftime('%s',(select 
   max(last_visit_time)/10000000 from urls),'unixepoch','-1 days')*10000000);

这是另一个可能适用于Thumbnails数据库的方法:

attach database 'History' as history;
delete from thumbnails where last_updated <= (strftime('%s',(select 
   max(last_visit_time)/10000000 from history.urls),'unixepoch','-1 days')
   *10000000);

这可能适用于History Index-es:

attach database 'History' as history;
delete from info i, pages_content pc where i.time <= (strftime('%s',(select
   max(last_visit_time)/10000000 from history.urls),'unixepoch','-1 days')*
   10000000) and i.rowid = pc.rowid;

当然,你应该备份所有的数据库,因为你可能有不同版本的 Chrome,或者我可能会不小心错过一个符号等等。

由于 Chrome 以基于 UNIX 纪元的某种奇怪格式存储其时间(但乘以 10^7 并转移到未来),因此无法使用返回日期的系统函数;而是使用上次打开页面的日期。

您可以-1 days用任意间隔进行替换;您可以在SQLite 文档(简称:-N days-N months)。

删除不需要的数据后,您可能想要发出vacuum;进一步缩小数据库的命令。

答案2

(这不是答案,但我将其保留作为警告。)

我见过两个声称能够以某种方式实现这一点的扩展,但都没有起作用。

然而这些(我期望其他扩展)只调用 chrome.history.deleteRange— 如果你够幸运的话,参数合理。根据文档:

从历史记录中删除指定日期范围内的所有项目。除非所有访问都在此范围内,否则不会从历史记录中删除页面。

实际上,除了(我认为)页面不会出现在历史记录页面中之外,我看不到任何影响。特别是历史数据库文件仍然很大,Chrome 仍然对其进行大量 IO。所以我怀疑(来自非常对 Chromium 9 beta r68937 的随意观察)chrome.history.deleteRange只会影响页面中可见的内容chrome://history,而不会影响磁盘上存储的内容,并且会影响 URL 栏完成等内容。

答案3

所有这些答案都很有帮助,但已经过时了。我找到并使用了“History Limiter Custom”插件,它运行完美。

History Limiter Custom 是“History Limiter”的较新版本,具有更好的性能并且几乎没有错误。

https://chrome.google.com/webstore/detail/history-limiter-custom/ibpfkplbhnbiklpjacjbaelahebmbmpp/related

相关内容