過去24時間に変更されたファイルを見つける


265

たとえば、MySQLサーバーがUbuntuマシンで実行されています。過去24時間に一部のデータが変更されました。

過去24時間に変更されたファイルを見つけることができる(Linux)スクリプトは何ですか?

ファイル名、ファイルサイズ、変更日時を記載してください。


回答:


479

特定の特定のディレクトリとそのサブディレクトリで、過去24時間(過去1日)に変更されたすべてのファイルを検索するには:

find /directory_path -mtime -1 -ls

あなたの好みに合わせて

-前に1重要である-それは何がそれほど前の1日が変更されたか、または意味します。+1の代わりに平均何でも前に何も持たない一方で、少なくとも1日前に変更されないだろう1、それが変更された意味でしょう劣らず、これ以上、1日前に強要しました。


17
いいね!過去2時間はどうですか?
JackWM 2013

114
mtimeの代わりに "-mmin -120"を使用します
Xavjer 2013

1
なぜ-数値の前?
EsseTi 2016

6
-mtimeへの引数は、ファイルの経過日数として解釈されます。-mtime + nは完全により大きい、-mtime -nは完全に小さい、という意味です。
Xavjer 2016

3
削除することを忘れないでください:リーダーに-lsスクリプト内で使用している場合
しのばせる

41

あなたはそれを行うことができます

find . -mtime 0

からman find

各ファイルが最後に変更されてからの時間は24時間で除算され、残りは破棄されます。つまり、-mtime 0に一致するには、ファイルの過去の変更が24時間以内である必要があります。


25

別のより人道的な方法:

find /<directory> -newermt "-24 hours" -ls

または:

find /<directory> -newermt "1 day ago" -ls

または:

find /<directory> -newermt "yesterday" -ls

11

GNU互換システム(つまりLinux)の場合:

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

これにより、過去24時間に変更されたファイルとディレクトリが一覧表示されます(-mtime 0)。ソート可能で人間が読める形式(%T+)、ファイルサイズ(%s)、完全なファイル名(%p)の順にタブ(\t)で区切られた形式で、最終変更時刻とともにリストされます。

2>/dev/nullエラーメッセージが水を濁さないように、すべてのstderr出力を破棄します。sort -r最近変更されたものから順に結果を並べ替えます。そして| more一度に結果の1ページを示しています。


2
| less代わりにを使用することもでき| moreます。
Stephen G Tuggy

7

将来ここに到着する他のユーザー(自分自身を含む)は、-nameオプションを追加して、特定のファイルタイプを検索します。次に例を示します。 find /var -name "*.php" -mtime -1 -ls


5

このコマンドは私のために働きました

find . -mtime -1 -print
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.