システムで開いているすべてのファイルを一覧表示する方法はありますか?
現在開いているすべてのファイルを表示したり(フルパス、おそらくいくつかのオプションを含むlsof
)、私の場合は、より興味深い方法で開いているパス名を一覧表示することができるとはtail -f
思いません。lsof
ベストアンサー1
このプログラムは、inotifywait
あなたが探しているものなどの高性能ファイル監視用に設計されています。概念の証明は次のとおりです。
$ inotifywait -qrm -e open -e access --format "%e %f" tmp/
OPEN hello
OPEN,ISDIR
ACCESS,ISDIR
OPEN hello
出力はを実行しtouch tmp/hello
てからless tmp/h<TAB>
(タブを完了less tmp/hello
)、Enterキーを押してLessでファイルを開くと出力されます。
/proc
システム全体で実行している場合と同じ場所を除外できます/sys
。ディレクトリを除外するようにパイプすることもできますgrep -vE '^(OPEN|ACCESS),ISDIR$
。最後に、再帰監視に関する警告も確認する必要があります。
警告する:大きなツリーのルートを監視するときにこのオプションを使用すると、すべてのInotify監視が完了するまでにかなりの時間がかかる可能性があります。この間、イベントは受信されません。また、サブディレクトリごとに1つのInotify監視が設定されているため、ユーザーあたりの最大Inotify監視数に達することができます。デフォルトの最大値は8192です。 /proc/sys/fs/inotify/max_user_watches に記録して増やすことができます。