Как я могу удалить старую историю из 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;команду, которая еще больше сокращает базу данных.

whitequark
источник
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

bdombro
источник