我希望能够跟踪文件并查看哪个进程正在触及该文件。那可能吗?我知道我可以在活动监视器中看到打开进程的列表,但我认为很快就能让我看到它。原因是我正在使用框架,我认为正在使用框架的系统版本而不是调试版本,我想看看哪个进程正在触及它。
答案 0 :(得分:85)
lsof
将列出打开的文件,但是对于瞬间触摸可能有点尴尬(例如,如果在运行lsof时文件未打开,则不会显示)。
我认为你最好的选择是fernLightning的fseventer.app。它是“nagware”,允许您以实时方式(以图形方式)观看fsevents API。
答案 1 :(得分:82)
这很简单:sudo fs_usage | grep [path_to_file]
答案 2 :(得分:37)
但我花了2分钟谷歌搜索并找到your answer here。
$ lsof | grep [无论如何]
将[what]替换为您要查找的文件名。 有了这个,你可以看到哪个程序拼命抓住你的 即将被删除的文件。退出该程序后,您的垃圾邮件将会丢失 空。
答案 3 :(得分:12)
更快的方法是:
$ lsof [path_to_file]
此解决方案不需要root密码,并为您提供以下清除结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Finder 497 JR7 21r REG 1,2 246223 33241712 image.jpg
QuickLook 1007 JR7 txt REG 1,2 246223 33241712 image.jpg
答案 4 :(得分:12)
另一个选项是Sloth。它是其他人提到的LSOF的免费开源GUI。