Как я могу удалить старую историю из Google Chrome?


19

Я работаю на ноутбуке со скромным жестким диском, и 500 МБ занято с файлами Google Chrome «History Index» и «Thumbnails». Некоторым из этих файлов год. Chrome предлагает мне удалить недавнюю историю, но я хочу наоборот: я хочу удалить старую историю. (В идеале я хотел бы удалить наименее использованную информацию из истории, но я не ожидаю, что смогу это сделать.)

У кого-нибудь есть идеи? Я использую стандартный google-chrome-betaпакет Debian .


В Chrome теперь встроена поддержка очистки истории, файлов cookie и других данных, поэтому этот вопрос больше не актуален.
— nhinkle

2
@nhinkle: пожалуйста, укажите номер версии или страницу документации Google. хром был «поддержка» в течение некоторого времени, но поддержка , как хром 11 (текущей версии стабильной) позволяет удалить только недавнюю историю, а не старую историю
— Norman Ramsey

это честно; Я вновь открыл вопрос. Приношу свои извинения за неправильное понимание.
— nhinkle

@NormanRamsey, Chrome автоматически удаляет историю старше 90 дней. Это то, что вы хотели?
— Pacerier

Ответы:


13

Стыдно гуглу, пока нет пути .

Кроме того, все базы данных 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
Спасибо за подробный ответ. Я знал, что должен был уделять больше внимания в классе базы данных.
— Норман Рэмси

@whitequark, что ты имеешь в виду под "перенесенным в будущее"?
— Pacerier

3

(Это не ответ, но я оставляю это как предупреждение.)

Я видел два расширения, которые утверждают, что делают это каким-то образом, но ни одно из них не работает.

Однако эти (и я ожидаю других расширений) вызов только chrome.history.deleteRange- если вам повезет, с разумными параметрами. Согласно документации:

Удаляет все элементы в указанном диапазоне дат из истории. Страницы не будут удалены из истории, если все посещения не попадают в диапазон.

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


Оба плохие новости. Ограничитель истории удаляет все, кроме ваших последних 7 дней, поэтому, как только вы установите его, вы потеряете. И Click2Clear History - это катастрофа юзабилити, не говоря уже о том, что «пользовательский период» на снимке экрана не работает. Избегайте обоих этих расширений, особенно History Limiter, который необратимо удаляет доступ к вашей истории. И это тоже не удаляет эти чертовы данные !!!!
— Норман Рэмси

Что вы подразумеваете под последней строкой, «она также не удаляет эти чертовы данные»? Я хочу избавиться от больших файлов History Index на моем диске, так ли это?
— Нил

Ограничитель истории был исправлен, чтобы не вести себя так, как указал Норман. Кроме того, есть ограничитель истории, который выглядит обновленным и улучшенным: chrome.google.com/webstore/detail/history-limiter-custom/…
— bdombro

0

Все эти ответы были полезны, но устарели. Я нашел и использую плагин «History Limiter Custom», и он работает безупречно.

History Limiter Custom - более новая версия «History Limiter», которая имеет лучшую производительность и в основном не содержит ошибок.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.