Мне нравится, когда история моего браузера охватывает годы назад, чтобы я мог посмотреть на вещи, которые, возможно, интересовали меня давным-давно. Чтобы реализовать это желание, я настроил Safari на удаление элементов истории «вручную» на General
вкладке в файле Preferences
. Я сделал то же самое для элементов списка загрузки. Моим намерением было (и есть) никогда не удалять элементы истории и не позволять Safari делать это автоматически.
Это, казалось, работало нормально какое-то время, и у меня все еще есть история, которая насчитывает более года. Однако недавно я заметил, что самые старые дни в моей истории исчезают. Сначала я не был уверен, но после проведения некоторых тестов я уверен. Кажется, что это происходит случайно и нечасто. Я думаю, что окно Safari также теряет фокус, когда это происходит.
Я не уверен, как и почему это происходит. Единственное, о чем я могу думать, это о том, что в самом Safari может быть какое-то жестко запрограммированное ограничение. Или, возможно, он очищает старые элементы истории, когда достигает предела памяти.
Я вижу, что мой History.db
файл на ls
выходе составляет 80 МБ:
-rw-r--r-- 1 my_username staff 80M Dec 29 13:02 History.db
Является ли 80 МБ каким-то неявным ограничением для Safari?
Другой неприятный аспект этой проблемы заключается в том, что я не могу экспортировать свою историю Safari в другой браузер. И Chrome, и Firefox отказываются импортировать что-либо из Safari, кроме закладок. Кроме того, у меня не так много резервных копий моей истории Safari. Хотя резервные копии в любом случае не слишком помогут, поскольку в резервной копии не будет моей недавней истории.
Итак, как я могу заставить Safari перестать терять мои самые старые элементы истории?
Некоторая информация об окружающей среде:
Моя версия Safari в настоящее время 11.0.2 на macOS 10.13.2. Кроме того, я не использую интеграцию iCloud с Safari.
РЕДАКТИРОВАТЬ:
Во время вознаграждения за этот вопрос я также рассмотрю возможность принятия ответов, которые предлагают способ экспортировать мою историю в другой браузер (предпочтительно Firefox или Chrome).
Это ограничение размера, установленное Safari .
База данных sqlite, очевидно, может быть больше 80M; он ограничен только объемом доступного места для хранения, но технически он имеет верхний предел размера файла около 140 ТБ.
Другие разработчики отметили, что в (более старых версиях) Safari ограничение ограничено 50 ГБ . Разумно предположить, что это ограничение было увеличено в последующих выпусках macOS/iOS/Safari.
Также само собой разумеется, что это ограничение на размер налагается (Apple) Safari, потому что по умолчанию он настроен на синхронизацию с iCloud с другими устройствами Apple, многие из которых ограничены доступностью хранилища (например, iPhone и iPad).
Мы также знаем, что базовый (бесплатный) объем хранилища iCloud составляет 5 ГБ, и это должно учитывать гораздо больше, чем история просмотров. Для таких вещей, как файлы, настройки, резервные копии устройств (где применимо), цепочки для ключей, заметки и т. д., должно быть выделено место. Синхронизация этих элементов установлена Apple по умолчанию.
Не имеет особого смысла допускать неограниченную историю, которая History.db
может превзойти возможности iCloud/iPad/iPhone.
Даже если вы не используете интеграцию с iCloud , средний пользователь использует ее, и Apple будет строить свои продукты на основе этой предпосылки и соответствующим образом разрабатывать свои продукты.
Извлечение вашей истории
Вы можете вытащить элементы истории из History.db
файла с помощью этого (очень) простого скрипта sqlite3.
Создайте файл «commands.txt» и заполните его следующими командами:
.mode csv
.once history.txt
select visit_time, title, url from history_visits inner join history_items on history_items.id = history_visits.history_item;
Затем введите команду
sqlite3 History.db < commands.txt
Это создаст файл CSV с именем history.txt
, содержащим время, заголовок и URL-адрес элементов истории. Это предполагает, что вы находитесь в ~/Library/Safari
каталоге. Имейте в виду, что дата/время вашего элемента истории будет во времени эпохи (хотя в этом случае эпоха отличается ) и в конечном итоге необходимо будет преобразовать.
history.txt
файл полностью пуст.sqlite3
, вы что-нибудь увидите?sqlite3 History.db
, тогда select * from history_items;
дайте мне знать, что вы получите.url
элемента . history_visits
Я использовал DB Browser для SQLite , чтобы проверить базу данных и выяснить это.select
команде. Попробуй это сейчас. Я только что протестировал его, и он работает нормально.history.txt
файл! Большое спасибо!Простой ответ, нет, вы не можете.
Я предлагаю вам использовать Chrome и импортировать данные, выполнив следующие действия:
Солнечный Майк
ВВП2
defaults write ~/Library/Preferences/com.apple.Safari.plist HistoryAgeInDaysLimit 999999
. Я еще не уверен, что это сработает, особенно. так как этот совет не был принятым ответом.Солнечный Майк
ВВП2
Солнечный Майк
ВВП2
HistoryAgeInDaysLimit
установки999999
.оромэ