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

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

おすすめ記事