find -mminを使用して、将来変更時刻のあるファイルを検索する


9

使うことができます

find . -mmin -5

過去5分間に変更されたファイルを検索する。しかし、私が負の数findを与えることによって将来修正時刻のあるファイルを見つけようとすると、それを行うことを拒否します:

find . -mmin --1

標準のLinuxに将来の修正時間を与える方法はありfindますか?

回答:


9

少なくとも5日後に変更されたファイルを検索するには、次のコマンドを使用します。

find . -newermt "5 days"

時間指定の構文は、の構文に対応していdate -dます。詳細man findについては、名前の付いたスイッチの情報を参照してください-newerXY

たとえば-mmin、これを行うために使用することはできません。これはGNU findに対するバグとして報告され、-newerXY上記で示したようにfindutils 4.3.3(〜2007)に実装することで解決されました。


使用されたのはGNU findではなく、BusyBoxでした。

その後touch -d、将来の日付を含む一時ファイルを作成し、次のような-newerスイッチを使用できますfind

touch -d "+5 days" tmpfile
find . -newer tmpfile

BusyBox touchはその日付形式をサポートしていませんが、原理は同じであり、findサポートしています-newer。正しい日付で参照ファイルを作成することは、読者の練習問題として残しておきます(常に書くのに便利です)。


ありがとう。私の問題は、私の発見が古い組み込みのBusyBoxの発見であり、binutilの発見ではないことです。どうやら標準のLinuxの方法はここでは機能しません。:(
Muxecoid

@Muxecoid:私はいくつかのBusyBoxのコメントで私の答えを更新しました。
Daniel Andersson

これは、私が誤って10時間先に何かをした(既にオフセットされたハードウェアクロックにタイムゾーンオフセットが適用されている)新しいマシンでの問題を解決し、クロックを修正した後、configureスクリプトは(将来的に)まだ1時間半ほど):find . -newermt '1 hour' | xargs touch -d '-9 hours'そして私は続けることができます。:-)
Chris Morgan、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.