15秒より新しいが2秒より古いファイルを検索したい。 15秒より新しいファイルを取得するために現在使用しているスクリプトは次のとおりです。
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
どんな助けでも大歓迎です
複数の述語をチェーン化することで組み合わせることができます。
-oldermt
はありませんが、-not -newermt
と書くことができます。
あなたが欲しい:
-newermt '-15 seconds'
は、ファイルが古いもので15秒未満であり、-not -newermt '-2 seconds'
は、ファイルが2秒以上前のものであることを示します試してください:
find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'
または、POSIXに準拠するには:
find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'
また、あなた(と他の読者)が知っているように、「より新しい」とは、より最近に作成されたものではなく、より最近に変更されたことを意味します。
あなたはあなたのOSについて言及しなかった...
これは、FreeBSDのような現代のfind実装やsfind
でうまく機能します。
find /my/directory -name '*.jpg' -mtime -15s -mtime +2s
SfindはSchilyツールの一部です: http://sourceforge.net/projects/schilytools/files/
警告:sfind
で問題を発見しました。 -mtime
引数が60秒未満の場合、ファイル時間が現在-ls
の年の切り替えに対して最初に計算された60秒後のタイムスタンプと現在比較されているため、正しく動作しません。
ところで:-not
はfind
に属していません。これは移植性のないGNUismです。