解決策 1:
いいえ、日付/時刻文字列を使用できます。
man find
から :
-新しいXY参照
現在のファイルのタイムスタンプを参照と比較します。参照引数は、通常、ファイルの名前 (およびそのタイムスタンプの 1 つが比較に使用されます) ですが、絶対時間を表す astring の場合もあります。 X と Y は他の文字のプレースホルダーであり、これらの文字は、参照がどのように比較に使用されるかに属する時間を選択します。
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
t reference is interpreted directly as a time
例:
find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls
解決策 2:
質問とは直接関係ありませんが、ここでつまずいた人にとっては興味深いかもしれません。
見つける コマンドは、必要な日付よりも古いファイルを検索するための -older パラメータを直接サポートしていませんが、negate ステートメントを使用できます (受け入れられた回答の例を使用):
touch -t 201003160120 some_file
find . ! -newer some_file
古いファイルを返します
解決策 3:
「-newer file」しかない場合は、次の回避策を使用できます:
# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file
# find all files created after this date
find . -newer some_file
マンタッチ:
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
タッチにこのオプションがあると仮定します (私のタッチは 5.97 です)。
解決策 4:
find <dir> -mtime -20
この検索コマンドは、過去 20 日以内に変更されたファイルを検索します。
- mtime -> 変更済み (atime=アクセス済み、ctime=作成済み)
- -20 -> 生後 20 日未満 (20 は正確に 20 日、+20 は 20 日以上)
次のような制限を追加できます:
find <dir> -mtime -20 -name "*.txt"
前と同じですが、'.txt' で終わるファイルのみを検索します。
解決策 5:
さらに付け加えると、2 つの newermt 引数を使用して時間間隔で検索することもできます。
find ! -newermt "apr 01 2007" -newermt "mar 01 2007" -ls
2007 年 3 月以降のすべてのファイルを検索します。