Je to ostuda pro Google, zatím neexistuje žádná cesta.
Kromě toho jsou všechny databáze Chrome pouze soubory sqlite3 a pomocí sqlite3 můžete odstranit nepotřebné položky. Nejprve nainstalujte sqlite3
klient (sudo apt-get install sqlite3
) a poté přejděte na konfiguraci Chrome (měla by být .config/chrome/Default
).
Zde je úryvek SQL, který odstraňuje staré adresy URL z historie (funguje na databázích History
, Archived History
):
delete from urls where last_visit_time <= (strftime('%s',(select
max(last_visit_time)/10000000 from urls),'unixepoch','-1 days')*10000000);
Zde je další, který bude pravděpodobně fungovat na Thumbnails
databáze:
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);
To bude pravděpodobně fungovat na 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;
Samozřejmě byste měli zálohovat všechny databáze, protože můžete mít jinou verzi Chromu, nebo mi může omylem uniknout symbol atd.
Protože Chrome ukládá své časy v nějakém podivném formátu založeném na UNIX Epoch (ale vynásobený 10^7 a posunutý do budoucnosti), systémové funkce vracející datum nelze použít; místo toho se použije datum posledního otevření stránky.
Můžete nahradit -1 days
s libovolným intervalem; o povolených modifikátorech si můžete přečíst v dokumentaci SQLite (krátce:-N days
, -N months
).
Po odstranění nepotřebných dat možná budete chtít vydat vacuum;
příkaz, který ještě více zmenší databázi.
(Toto není odpověď, ale nechávám to jako varování.)
Viděl jsem dvě rozšíření, která tvrdí, že to nějakým způsobem dělají, ale ani jedno nefunguje.
- Click2Clear History odstraní pouze nedávné položky. (Nebo se o to snaží.)
- Omezovač historie smaže staré položky při každé návštěvě historie.
Tato (a očekávám i další rozšíření) však volají pouze chrome.history.deleteRange
— pokud budete mít štěstí, s rozumnými parametry. Podle dokumentace:
Odebere z historie všechny položky v zadaném časovém období. Stránky nebudou z historie odstraněny, pokud všechny návštěvy nespadají do rozsahu.
A v praxi nevidím žádný efekt, kromě (myslím) stránek, které se nezobrazují na stránce historie. Zejména soubor databáze historie je stále velký a Chrome do něj stále dělá spoustu IO. Takže mám podezření (z velmi příležitostné pozorování pomocí Chromium 9 beta r68937), že chrome.history.deleteRange
ovlivňuje pouze to, co je viditelné v chrome://history
stránku a ne to, co je uloženo na disku, a ovlivňuje věci, jako je dokončení řádku URL.