Mac无法直接查看完整USB历史连接日志,但可通过系统信息(实时设备树)、system_profiler快照比对(需多时间点保存)、ioreg与system.log日志(含7天内插拔记录)三处交叉还原大部分USB设备连接痕迹。

当你需要确认一台Mac是否曾连接过某U盘、手机或调试器,比如接手二手设备、排查安全审计线索、或还原某次开发环境搭建过程时,系统并不保存完整的USB设备历史连接日志——但可通过三处分散的系统凭证交叉还原出绝大部分已连接过的USB设备痕迹。
秒开系统信息查看当前枚举设备树(含内置USB模块)
这是最快捷的图形化入口,直接加载实时硬件枚举快照,覆盖所有被内核识别过的USB设备,包括FaceTime摄像头、蓝牙模块等内置组件,它们本身就是通过USB总线挂载的。
第一步:按住键盘左下角的Option键不放;
第二步:用鼠标点击屏幕左上角的苹果菜单();
第三步:在扩展菜单中选择“系统信息”;
第四步:左侧边栏展开“硬件”→“USB”,右侧即显示完整设备树;
注意:此界面不显示已拔出但曾经连接过的设备,仅反映当前内核正在管理的USB节点。若未看到“系统信息”选项,说明系统版本低于macOS Ventura,需改用“关于本机→系统报告…”路径。
导出system_profiler结构化报告并人工比对
该命令输出与系统信息完全一致的文本数据,但支持时间戳记录和离线存档,适合将不同时间点的报告保存后逐行diff比对,从而发现新增或消失的设备条目。
打开终端 → 输入system_profiler SPUSBDataType > ~/Desktop/usb_now.txt → 回车;
等待3–5秒输出完成,桌面生成当前USB设备全量清单;
隔几小时或几天后再次执行相同命令,保存为usb_later.txt;
用文本对比工具(如VS Code的Compare Files插件)打开两个文件,新增的Product:行即代表期间新连接过的USB设备;
这一步操作起来很简单,直接把文件拖进去就行。但要注意:system_profiler不会记录设备拔出时间,只保留最后一次枚举时的状态,因此必须靠人工保存多个时间点快照才能推断历史连接行为。
从ioreg注册表提取原始设备路径与厂商标识
方法一:终端中运行ioreg -p IOUSB -w 0 | grep -E "product|vendor|idVendor|idProduct",可快速筛出所有活跃USB设备的产品名与VID/PID;
方法二:若需追溯更久远痕迹,执行ls /dev/ | grep -i usb,部分驱动加载后会残留usb*.*设备节点,虽不保证长期存在,但在刚拔出设备后立即执行可能捕获到残留路径;
方法三:检查/var/log/system.log中USB相关日志(需开启详细日志),运行log show --predicate 'subsystem == "com.apple.usb"' --last 7d,可提取过去7天内USB设备插拔事件,包括USB device attached和USB device detached记录——这是唯一接近“历史连接”的原生日志源。
















