Bashの起動時にアクセス/使用されているすべてのファイルをどのように追跡して印刷できますか?

Bashの起動時にアクセス/使用されているすべてのファイルをどのように追跡して印刷できますか?

bashmacOSで実行するたびにコンソールにアクセスされたすべてのファイルを印刷する必要があるという問題があります。

比較的簡単な方法はありますか?たぶんdtraceこれを非常に簡単にすることができますか?

答え1

「bash」というプロセスで直接開いたすべてのファイルを表示するには、次のようにします。

$ sudo dtrace -n 'syscall::open*:entry/execname == "bash"/{ trace(copyinstr(arg0)); }'

あるいは、bashの起動とプロンプトの間に開かれたすべてのファイルを表示したい場合があります。これを行うには、次の操作を行います。

$ sudo dtrace -n 'syscall::open*:entry/progenyof($target)/{ printf("%s %s", execname, copyinstr(arg0)) }' -c bash

開いているファイルとそのファイルにアクセスするために使用されるコマンドが表示されます。

関連情報