在mac终端中可通过sqlite3直接查询safari历史数据库history.db,需先退出safari,进入~/library/safari/目录,执行sql命令提取url、标题、时间戳等字段,并支持模糊搜索与csv导出。

您需要在Mac终端中直接检索Safari浏览器的全部历史访问记录,包括URL、标题、访问时间戳等原始字段,而非仅靠图形界面筛选可见条目。
准备:定位并解锁Safari历史数据库
第一步:退出Safari,确保其进程完全终止——否则数据库文件处于锁定状态,后续sqlite3命令将报错“database is locked”。
第二步:在终端中执行以下命令,快速跳转到历史数据库所在路径:
cd ~/Library/Safari/
第三步:运行命令检查History.db是否存在且可读:
ls -l History.db
若返回“No such file or directory”,说明Safari从未启用过历史记录功能,或该用户未在当前账户下使用过Safari。
执行:用sqlite3命令查询历史条目
方法一:查看最近50条访问记录(含URL与标题)
sqlite3 History.db "SELECT url, title, visit_count, last_visit_time FROM history_items ORDER BY last_visit_time DESC LIMIT 50;"
方法二:按关键词模糊搜索所有含“github”字样的URL或标题
sqlite3 History.db "SELECT url, title, datetime(last_visit_time/1000000-11644473600,'unixepoch') AS time FROM history_items WHERE url LIKE '%github%' OR title LIKE '%github%' ORDER BY last_visit_time DESC;"
规划您的迪拜之旅 — 哈利法塔观景、沙漠探险、迪拜购物中心购物、棕榈岛度假村及黄金市场砍价。还提供支持...
【注意:last_visit_time字段是Windows FILETIME格式(微秒级),需减去11644473600再转为Unix时间戳,否则显示为错误年份】
进阶:导出为CSV供外部分析
第一步:创建临时导出目录
mkdir -p ~/Desktop/SafariHistoryExport
第二步:用sqlite3命令将完整历史表导出为CSV格式(含表头)
sqlite3 -header -csv History.db "SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch') AS '访问时间', url AS '网址', title AS '页面标题', visit_count AS '访问次数' FROM history_items ORDER BY last_visit_time DESC;" > ~/Desktop/SafariHistoryExport/history_full.csv
这一步会生成带中文列名的CSV文件,可直接用Numbers或Excel打开。导出过程不修改原数据库,安全无损。
第三步:验证导出结果是否非空
head -n 10 ~/Desktop/SafariHistoryExport/history_full.csv










