このコマンドを使用して、最後の日に変更された(または生成された)すべてのファイルを一覧表示します。
find ./ -mtime 1 -ls
さて、先ほど命令を実行したところ(5月2日19時38分)、4月30日からファイルが引き続き返されます。
なぜこれが起こるのかを教えたり、過去24時間に変更または生成されたファイルを見つけるためのより良いコマンドを与えることができる人はいますか?
答え1
find
数日前に変更されたファイルの場合は、小数部は無視されるため、代わりに-mmin
使用することをお勧めします。-mtime
したがって、23時間の1日も1日と見なされます。
からman find
:
-atime n
File was last accessed n*24 hours ago. When find figures
out how many 24-hour periods ago the file was last accessed,
any fractional part is ignored, so to match -atime +1, a file has
to have been accessed at least two days ago.
あなたの場合、以下は過去24時間(例:1440分)で変更されたファイルを示しています。
find . -mmin -1440 -ls
答え2
-mtime N
ファイルの年齢を示します。ㅏ一日で満足してください。窒素≤ㅏ<窒素+1。つまり、最後に変更されたファイルを選択します。-mtime N
窒素そして窒素+1日前。たとえば、-mtime 1
1〜2日前に変更されたファイルを選択します。最後の日(たとえば、過去24時間以内)に変更されたファイルを選択するには、を使用します-mtime 0
。
-mtime -N
ファイルの年齢を示します。ㅏ解くㅏ<窒素つまり、変更されたファイルは次より少なくなります。窒素数日前。それほど直感的ではなく、ファイルの年齢を意味します。-mtime +N
ㅏ解く窒素+1≤ㅏつまり、少なくとも変更されたファイル窒素+1日前。
これらの規則を覚えにくい場合は、代わりに参照文書を使用してください。
touch -d '1 day ago' cutoff
find . -newer cutoff
(「1日前」構文にはGNUが必要ですtouch
。)