プログラムがアクセスするファイルのリスト

プログラムがアクセスするファイルのリスト

time特定の命令が消費するCPU時間を計算する場合は、これは優れた命令です。

私は、プログラムとそのサブルーチンがアクセスするファイルを一覧表示できるようなものを探しています。リアルタイムまたはポストレポート。

現在私は以下を使用しています:

#!/bin/bash

strace -ff -e trace=file "$@" 2>&1 | perl -ne 's/^[^"]+"(([^\\"]|\\[\\"nt])*)".*/$1/ && print'

ただし、実行したいコマンドが次に関連する場合はsudoそれほどスマートではありません(既存のファイルまたは権限の問題があるファイルのみを一覧表示したり、読み取ったファイルと書き込んだファイルにグループ化したりできます)。そしてstraceかなり遅いので、より速いオプションがあれば良いようです。

ベストアンサー1

私はあきらめて自分のツールを書いた。その文書を引用すると、次のようになります。

SYNOPSIS
    tracefile [-adefnu] command
    tracefile [-adefnu] -p pid

OPTIONS
    -a        List all files
    -d        List only dirs
    -e        List only existing files
    -f        List only files
    -n        List only non-existing files
    -p pid    Trace process id
    -u        List only files once

ファイルを出力するだけなので処理する必要はありませんstrace

https://codeberg.org/tange/tangetools/src/branch/master/tracefile

おすすめ記事