GNU/Linux >> Linux の 問題 >  >> Linux

Linux:find を使用して <date> より古いファイルを見つける

解決策 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 月以降のすべてのファイルを検索します。


Linux
  1. Linuxでsedを使用してテキストファイルを検索および置換する

  2. Linuxのfindコマンドの使用–例を使用した使用法

  3. Linux – Linuxで現在の日付のファイルを取得しますか?

  1. LinuxでXサイズよりも大きいまたは小さいファイルを見つける方法

  2. Linux で tmpreaper を使用して N 日以上経過したファイルを削除する方法

  3. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  1. Linuxの検索コマンド

  2. Linuxでファイルを検索するには、検索と検索を使用します

  3. Linux で特定の期間より古いファイルを見つけて削除する方法