15秒より新しいが2秒より古いファイルを検索する


17

15秒より新しいが2秒より古いファイルを検索したい。以下は、現在使用しているスクリプトで、15秒よりも新しいファイルを取得します。

find /my/directory -name '*.jpg' -not -newermt '-15 seconds'

どんな助けも大歓迎です


2
どのオペレーティングシステムを使用していますか?find実装には違いがあります。
テルドン

2秒前に正確に変更されたファイルは一致する必要がありますか?ちょうど15秒前に変更されたファイルはどうですか?
ミケル

スクリプトの開始時または終了時の2秒より新しいですか?
ステファンシャゼル

@Mikel、これはおそらく時計がナノ秒単位の解像度を持っているため、おそらく無関係です。
ステファンシャゼラス

1
わかりました...誰も聞いていないので... @ Yllier123なぜ2 <x <15秒の間に作成されたファイルを見つける必要があるのですか?興味があります。
Cバウアー

回答:


17

複数の述語をチェーンで結合できます。

ありませんが-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'

また、ちょうどあなた(および他の読者)が認識しているように、「新しい」とは、より最近作成されたものであり、最近作成されたものではないことを意味します。


3
いいね -not -newermt '-2 seconds'また、正確に2秒前のファイルと一致することに注意してください。使用-not -newermt '3 seconds'だけでなく、それらを除外します。
テルドン

1
ええ、エッジケースはいつも楽しいです。これらの比較にどの解像度を使用するのか実際にはわかりません。私の想定では、〜2.000000001秒前に変更されたものはすべて一致しますが、それはファイルシステムとオペレーティングシステムにも依存します。
ミケル

良い点は、解像度が何であるかわかりません。私はでテストしtouch -d "2 seconds ago" file; find . -newermt '-15 seconds' -not -newermt '-2 seconds'ましたfile
テルドン

@terdonまあ、それはタイムスタンプが1秒よりも正確な解像度を持っているかどうかに依存します。これはシステム、ファイルシステムに依存し、同じファイルシステムが複数の異なるマシンで使用されている場合、同じファイルシステム上のファイル間でも異なる場合があります。
ブラックライトシャイニング

「より新しい」は「より最近」を意味します。「修正」を意味するのは「m」です。
OrangeDog

4

OSについては言及しませんでした。

これは、FreeBSDやのような最新のfind実装でうまく機能しsfindます。

find /my/directory -name '*.jpg' -mtime -15s -mtime +2s

SfindはSchilyツールの一部です:http ://sourceforge.net/projects/schilytools/files/

警告:で問題を発見しましたsfind。場合は-mtime、引数が少ない60代以上あるファイルの時刻が現在のタイムスタンプ、もともとのための年間のスイッチのために計算された将来的には60秒と比較されて、それが正常に動作しません-ls

ところで:に-not属していませんfind、それは移植性のないGNUismです。


1
bashタグがあります...したがって、環境はCygwin、Debian GNU / Hurd、bashFreeBSDまたはSolaris上で実行される可能性があります…;-)
phk

GNUのfind場合、10進数はクレイジーですが、回避策として使用できるようです。
Arthur2e5

POSIX findに!-not asがあり! expressionます。だから、大したことはありません。

私が強化され、標準で動作すること方法述べ、なぜ@phkこれがあるprimaryからは、find常に新しいを追加する必要がないことを人々に知らせるためprimariesの機能性を向上させることができるように見つけることを。ところで:修正libfindが公開されていschily toolsます。
気味悪い

@BinaryZebra問題はgfind-notエイリアスをまったく追加しなかったことです。それは決して必要ではなく、その存在はベンダーのロックイン戦略と見ることができます。
15年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.