Як можна видалити стару історію з Google Chrome?


19

Я працюю на ноутбуці зі скромним жорстким диском, і 500 МБ займає файли Google Chrome "Історія індексу" та "Ескізи". Деяким із цих файлів є рік. Chrome пропонує мені можливість видалити недавню історію, але я хочу навпаки: я хочу видалити стару історію. (В ідеалі я б видалив найменш використану недавно інформацію про історію, але не сподіваюся, що зможу це зробити.)

У когось є якісь ідеї? Я запускаю стандартний google-chrome-betaпакет Debian .


Зараз Chrome має вбудовану підтримку для очищення історії, файлів cookie та інших даних, тому це питання більше не стосується.
nhinkle

2
@nhinkle: укажіть номер версії або сторінку документації google. chrome вже деякий час мав "підтримку", але підтримка хрому 11 (поточна стабільна версія) дозволяє видалити лише недавню історію, а не стару історію
Norman Ramsey

це справедливо; Я знову відкрив питання. Мої вибачення за те, що я не зрозумів це належним чином.
nhinkle

@NormanRamsey, Chrome автоматично видаляє історію старше 90 днів. Це те, чого ти хотів?
Пейсьєр

Відповіді:


13

Соромно Google, поки немає способу .

Крім того, всі бази даних 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 Epoch (але помножений на 10 ^ 7 та зміщений у майбутнє), дату повернення системних функцій використовувати не можна; замість цього використовується дата останнього відкриття сторінки.

Ви можете замінити -1 daysбудь-який потрібний інтервал; Ви можете прочитати про дозволених модифікаторів в SQLite документації (коротко: -N days, -N months).

Після видалення зайвих даних, можливо, ви захочете видати vacuum;команду, яка ще більше зменшує базу даних.


2
Дякую за детальну відповідь. Я знав, що мені слід приділяти більше уваги класу баз даних.
Норман Ремзі

@whitequark, Що ви маєте на увазі під «перенесеним у майбутнє»?
Печер'є

3

(Це не відповідь, але я залишаю це як попередження.)

Я бачив два розширення, які стверджують, що роблять це якимось чином, але це не працює.

  • Click2Clear History видаляє лише останні елементи. (Або намагається.)
  • Обмежувач історії видаляє старі елементи кожного разу, коли ви відвідуєте історію.

Однак ці (і я очікую інших розширень) дзвонять лише chrome.history.deleteRange- якщо пощастить, з розумними параметрами. Відповідно до документації:

Видаляє з історії всі елементи у вказаному діапазоні дат. Сторінки не будуть видалятися з історії, якщо всі відвідування не потраплять у діапазон.

І на практиці я не бачу жодного ефекту, крім (я думаю) сторінок, які не відображаються на сторінці історії. Зокрема, файл бази даних історії все ще великий, а Chrome все ще робить багато IO. Тому я підозрюю (від дуже випадкового спостереження з Chromium 9 beta r68937), що chrome.history.deleteRangeвпливає лише на те, що видно на chrome://historyсторінці, а не на те, що зберігається на диску, і впливає на речі, такі як заповнення рядка URL.


І те й інше - погані новини. Обмежувач історії видаляє всі, крім ваших останніх 7 днів, тому з моменту його встановлення ви втрачаєте. І історія Click2Clear - це катастрофа зручності використання, не кажучи вже про те, що "нестандартний період" на знімку екрану не працює. Уникайте обох цих розширень --- особливо обмежувача історії, який безповоротно видаляє доступ до вашої історії. І це не знімає проклятих даних, також !!!!
Норман Рамзі

Що ви маєте на увазі під останнім рядком, "він не знімає проклятих даних"? Я хочу позбутися великих файлів Індексу історії на своєму диску, чи це це зробить?
Ніл

Обмежувач історії був встановлений таким чином, щоб він не поводився так, як вказував Норман. Також є вилка обмежувача історії, яка здається оновленою та кращою: chrome.google.com/webstore/detail/history-limiter-custom/…
bdombro

0

Усі ці відповіді були корисними, але застарілими. Я знайшов і використовую плагін "Історія обмежувача користувальницької", і він працює бездоганно.

Користувач "Ліміт історії" - це новіша версія "Обмежувача історії", яка має кращі показники роботи і переважно не містить помилок.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.