web-dev-qa-db-ja.com

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

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

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

ファイル名、ファイルサイズ、修正日時を記入してください。

210
JackWM

特定の特定のディレクトリとそのサブディレクトリで、過去24時間(最後の1日)に変更されたすべてのファイルを見つけるには、次の手順を実行します。

__コード__

あなたの好みに合うはずです

find /directory_path -mtime -1 -ls の前の-は重要です - それは1日以内に変更されたものすべてを意味します。代わりに1の前に+が変更されたことを意味するのに対し、1の前に1が変更されたのは、少なくとも1日前に変更されたことを意味します。

408
Xavjer

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

find . -mtime 0

man findから:

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

33
Michael

もう一つの、もっと人道的な方法:

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

または

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

または

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

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は標準エラー出力を捨てるので、エラーメッセージは水を混乱させません。 sort -rは最新のものから順に結果をソートします。 | moreは一度に1ページの結果をリストします。

9
Stephen G Tuggy

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

find . -mtime -1 -print
5
BhandariS

将来自分がここに着地する人のために、特定のファイルタイプを見つけるために-nameオプションを追加してください。例えば:find /var -name "*.php" -mtime -1 -ls

4
resedasue