最後のログイン以降に変更されたファイルの再帰的なリストを表示します。

最後のログイン以降に変更されたファイルの再帰的なリストを表示します。

findを使用して、現在のターミナルセッションが開始されてから変更された現在のディレクトリ以下のすべてのファイルのリストを表示する方法を見つけようとしています。

明らかに再帰検索を使用したいのですが、ログイン後に変更されたファイルのみを表示する結果をどのように説明しますか?ログイン時に常に変更される他のファイルと比較して確認したいですか?組み込みメソッドがありますか?

次のように教えてください。 find . -newer 'xxxx'ここで、xxxxはターミナルセッションの開始時に変更されたファイルです。しかし、どのファイルがこれを行うことができますか?

答え1

この目的に使用できる特定のファイルはありませんが、直接追加するのは簡単です。

あなた.profile.bash_profileあなたができることすべてから

TIMEFILE=$HOME/.lastlogin
[[ ! -f $TIMEFILE ]] && touch $TIMEFILE
find $HOME -newer $TIMEFILE
touch $TIMEFILE

この行は、ファイルが存在しない場合の文句を[[防ぐために存在します。find

編集:ああ、申し訳ありません。ご質問を少し誤解している可能性があります。いつでもこのコマンドを実行できるので、この場合.bash_profile

touch $HOME/.lastlogin

今コマンドラインから

find $HOME -newer $HOME/.lastlogin

touchファイルを再送信していつでもタイマーをリセットできます。

答え2

Bashでは、を使用してログインから経過した時間を計算できますlast

TIMEDIFF=$(( ( $(date --date="$(last -1 | head -n 1 | tr -s " " | cut -d" " -f3-6)" +%s) - $(date +%s) ) / 60 ))

これにより負の数が生成されます。 (これは次のステップで役に立ちます。)

次に、-mminコマンドに視差とパラメータを追加しますfind

find . -mmin $TIMEDIFF

もちろん、1行にすることもできます。

関連情報