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

Nor*_*sey 20 linux google-chrome history

我正在使用带有适度硬盘驱动器的笔记本电脑,谷歌浏览器的“历史索引”和“缩略图”文件占用了 500MB。其中一些文件已有一年历史。Chrome 为我提供了删除最近历史记录的选项,但我想要相反的内容:我想删除历史记录。(理想情况下,我会删除最近最少使用的历史信息,但我不希望能够做到这一点。)

谁有想法?我正在运行标准的 Debiangoogle-chrome-beta软件包。

whi*_*ark 14

可耻的是谷歌,目前还没有办法

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

这是一个从历史记录中清除旧 URL 的 SQL 片段(适用于数据库HistoryArchived History):

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

这是另一个可能适用于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);
Run Code Online (Sandbox Code Playgroud)

这可能适用于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;
Run Code Online (Sandbox Code Playgroud)

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

由于 Chrome 以某种基于 UNIX Epoch 的奇怪格式存储其时间(但乘以 10^7 并转移到未来),因此无法使用返回日期的系统函数;改为使用最后一页打开的日期。

你可以用-1 days你想要的任何间隔替换;您可以在SQLite 文档(简称:-N days, -N months)中了解允许的修饰符。

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

  • 感谢您的详细回答。我知道我应该在数据库课上多加注意。 (2认同)