コマンドの実行によって変更されたファイル/ディレクトリの確認

コマンドの実行によって変更されたファイル/ディレクトリの確認

Bashでコマンドを実行する場合、そのコマンドを実行してどのファイルとディレクトリが変更されたかを確認する方法はありますか?

たとえば、次のように実行すると:

export $MYDIR="/home/users/myuser/"
touch $MY_DIR/*

修正されたファイルを一覧表示したいです。

/home/users/myuser/file1
/home/users/myuser/file2
/home/users/myuser/file3

しかし、具体的にはそうではありませんtouch。私は解決策が一般的であることを願っています。どの注文する。

可能ですか?

答え1

このユースケースでは、私が本当に好きないくつかのツールがあります。

  • maybeコマンドを実行しますが、ファイルシステムに対する修正を偽にし(実行せずに成功したふりをし、履歴)、すべての変更のリストを表示してから、コマンドを再実行するかどうかを決定できます。完璧ではありません。質問リストしかし、多くの場合に十分です。
  • ロギングファイルシステムファイルシステムに対するすべての変更を通過することを許可しますが、設定可能な方法で記録するジャーナルファイルシステムのオーバーライドを提供します(参照:LoggedFS 構成ファイルの構文詳細はこちら)。

ファイルシステムの操作を追跡するためによく使用されるその他のツールには、次のものがinotifywaitありますauditdLinuxファイルアクセスの監視もっと学ぶ。

答え2

基本/簡単なソリューションの場合は、まずファイルを作成してから、作業後にaを実行してfindそのファイルより最新のファイルを表示しますか?

touch /tmp/myfile
( do stuff )
find ${MY_DIR} -newer /tmp/myfile

@roaimaが指摘したように、これは「結果的に変更されたファイルとディレクトリ」の要件のみを解決し、削除されたファイルは識別しません。

関連情報