105

ファイルを追跡して、どのプロセスがそのファイルにアクセスしているかを確認できるようにしたいと考えています。それは可能ですか?アクティビティ モニターで開いているプロセスのリストを確認できることは知っていますが、すぐに表示されるようになっていると思います。この理由は、フレームワークを使用していて、デバッグ バージョンではなくシステム バージョンのフレームワークが使用されていると思われ、どのプロセスがそれに触れているかを確認したいからです。

4

5 に答える 5

108

それは簡単です:sudo fs_usage | grep [path_to_file]

于 2011-11-30T01:08:30.423 に答える
95

lsof開いているファイルが一覧表示されますが、一時的に触れると少し厄介になる可能性があります(たとえば、lsofの実行時にファイルが開いていない場合、ファイルは表示されません)。

あなたの最善の策はfernLightningのfseventer.appだと思います。これは「ナグウェア」であり、fsevents APIをリアルタイムで(グラフィックで)監視できます。

于 2011-11-29T20:38:18.997 に答える
43

しかし、私は2分間グーグルをして、ここであなたの答えを見つけました。

$ lsof | grep[何でも]

[何でも]が探しているファイル名に置き換えられます。これにより、どのプログラムがゴミ箱に入れられるファイルを必死に保持しているかを確認できます。そのプログラムを終了すると、ゴミ箱は空になります。

于 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 に答える