我正在使用一台硬盘容量适中的笔记本电脑,其中 500MB 被 Google Chrome 的“历史索引”和“缩略图”文件占用。其中一些文件已有一年历史。Chrome 为我提供了删除最近的历史,但我想要相反的:我想删除老的历史。(理想情况下,我会删除最近最少使用的历史信息,但我不指望能够做到这一点。)
有人有什么想法吗?我正在运行标准 Debiangoogle-chrome-beta
软件包。
答案1
谷歌真丢脸,还没有办法。
除此之外,所有 Chrome 数据库都只是 sqlite3 文件,您可以使用 sqlite3 清除不需要的条目。首先,安装sqlite3
客户端(sudo apt-get install sqlite3
),然后转到 Chrome 配置(应该是.config/chrome/Default
)。
下面是一个 SQL 代码片段,它可以从历史记录中清除旧的 URL(适用于数据库History
、Archived 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”的较新版本,具有更好的性能并且几乎没有错误。