GNU/Linux >> Linux の 問題 >  >> Linux

プログラムによってアクセスされるファイルを一覧表示しますか?

時間 特定のコマンドにかかるCPU時間を把握したい場合は、すばらしいコマンドです。

プログラムとその子がアクセスしているファイルを一覧表示できる類似のものを探しています。リアルタイムまたはその後のレポートとして。

現在使用しているもの:

#!/bin/bash

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

ただし、実行するコマンドに sudo が含まれている場合は、失敗します。 。あまりインテリジェントではありません(既存のファイルやアクセス許可の問題があるファイルのみを一覧表示したり、読み取り可能なファイルと書き込み済みのファイルにグループ化したりできると便利です)。また、 strace 遅いので、より速い選択で良いでしょう。

承認された回答:

私はあきらめて自分のツールをコーディングしました。ドキュメントから引用するには:

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://gitlab.com/ole.tange/tangetools/tree/master/tracefile


Linux
  1. Linux –カーネルメーリングリストに参加していますか?

  2. nm :オブジェクト ファイル内のシンボルを一覧表示するコマンド。

  3. ディレクトリ内の最後に変更された 5 つのファイルを一覧表示 (ls) するにはどうすればよいですか?

  1. ファイルのリストを検索から除外する

  2. カーネル デバイス ツリーを一覧表示する方法

  3. キャッシュされているファイルを一覧表示することはできますか?

  1. Linuxターミナルでファイルをコピーする

  2. Linuxターミナルでファイルを移動する

  3. 数値でソートされたファイルを一覧表示しますか?