fs_usage是macos原生内核级文件系统监控工具,支持实时追踪open、read、write等操作,需sudo权限并配合-w、-f filesys及grep等过滤选项精准定位读写行为。
直接用 fs_usage 就能开启 macos 底层文件读写追踪,它是系统原生、接近内核级的实时监控工具,不依赖轮询,响应快且信息具体。
用 fs_usage 实时抓取所有文件系统操作
这是最直接的方式,能显示每个进程对磁盘的实际动作(open、read、write、unlink、getattr 等),含路径、数据量和时间戳:
- 运行
sudo fs_usage -w -f filesys:持续输出全部文件系统调用,适合初步排查 - 加
-e fs_usage排除自身日志干扰,减少噪音:sudo fs_usage -w -f filesys -e fs_usage - 只看写入行为?过滤 write 和 truncate:
sudo fs_usage -w | grep -E "(write|truncate)"
聚焦监控特定目录或进程
避免信息过载,可按需缩小范围:
- 盯住某个路径(比如下载目录):
sudo fs_usage -w | grep "/Users/you/Downloads" - 只监控 TextEdit 的文件操作:
sudo fs_usage TextEdit - 监控指定 PID 的进程:
sudo fs_usage -p 1234(PID 可用ps aux | grep 关键词查)
配合其他命令快速定位异常写入源
单独看 fs_usage 输出有时不够直观,组合使用能更快锁定问题:
- 一边运行
sudo fs_usage -w | grep write,一边在另一窗口执行df -h /观察磁盘空间是否同步下降 - 发现可疑路径后,用
ls -l@ /path/to/file查扩展属性,或stat -f "%Su %SG %Sm" /path看属主、组和最后修改时间 - 想确认是不是某个后台服务在写日志?结合
ps aux | grep 关键词或launchctl list | grep -i log
不需要额外安装,系统自带,权限给足就能用。关键在于加 sudo 和合理过滤,否则信息太多反而难判断。











