我希望能够跟踪文件并查看哪个进程正在触摸该文件。那可能吗?我知道我可以在活动监视器中看到打开的进程列表,但我认为这很快就会让我看到它。这样做的原因是我正在使用一个框架,我认为正在使用框架的系统版本而不是调试版本,我想看看哪个进程正在触及它。
问问题
83823 次
5 回答
108
这很简单:sudo fs_usage | grep [path_to_file]
于 2011-11-30T01:08:30.423 回答
95
lsof
将列出打开的文件,但对于瞬时接触可能会有点尴尬(例如,如果文件在 lsof 运行时未打开,则不会显示)。
我认为你最好的选择是 fernLightning 的fseventer.app。它是“nagware”,允许您实时(以图形方式)观看 fsevents API。
于 2011-11-29T20:38:18.997 回答
43
但我花了 2 分钟谷歌搜索,在这里找到了你的答案。
$ lsof | grep [随便]
将 [whatever] 替换为您要查找的文件名的位置。有了这个,你可以看到哪个程序拼命地持有你即将被丢弃的文件。退出该程序后,您的垃圾箱将清空。
于 2011-11-29T20:26:24.217 回答
20
更快的方法是:
$ 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
于 2013-11-01T08:40:33.090 回答
18
另一种选择是Sloth。这是其他人提到的 LSOF 的免费开源 GUI。
于 2013-12-07T07:23:16.103 回答