Как я могу удалить старую историю из Google Chrome?
Я работаю на ноутбуке со скромным жестким диском, и 500 МБ занято с файлами Google Chrome "History Index" и "Thumbnails". Некоторым из этих файлов год. Chrome предлагает мне удалить недавнюю историю, но я хочу наоборот: я хочу удалить старую историю. (В идеале я хотел бы удалить наименее использованную информацию из истории, но я не ожидаю, что смогу это сделать.)
У кого-нибудь есть идеи? Я использую стандартный Debian google-chrome-beta
пакет.
3 ответа
Стыдно гуглу, пока нет пути.
Кроме того, все базы данных 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;
команда, которая сжимает базу данных еще дальше.
(Это не ответ, но я оставляю это как предупреждение.)
Я видел два расширения, которые утверждают, что делают это каким-то образом, но ни одно из них не работает.
- Click2Clear History удаляет только последние элементы. (Или пытается.)
- Ограничитель истории удаляет старые элементы каждый раз, когда вы посещаете историю.
Однако эти (и я ожидаю, что другие расширения) только вызов chrome.history.deleteRange
- если вам повезет, с разумными параметрами. Согласно документации:
Удаляет все элементы в указанном диапазоне дат из истории. Страницы не будут удалены из истории, если все посещения не попадают в диапазон.
И на практике я не вижу никакого эффекта, кроме (я думаю) страниц, не появляющихся на странице истории. В частности, файл базы данных истории по-прежнему большой, и Chrome по-прежнему выполняет много операций ввода-вывода. Так что я подозреваю (из очень случайного наблюдения с Chromium 9 beta r68937), что chrome.history.deleteRange
влияет только на то, что видно в chrome://history
страница, а не то, что хранится на диске и влияет на такие вещи, как завершение строки URL.
Все эти ответы были полезны, но устарели. Я нашел и использую плагин "History Limiter Custom", и он работает безупречно.
History Limiter Custom - более новая версия "History Limiter", которая имеет лучшую производительность и в основном не содержит ошибок.