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

日付範囲内で作成されたファイルを検索

GNU find を使用している場合 、バージョン 4.3.3 以降でできること:

find -newerct "1 Aug 2013" ! -newerct "1 Sep 2013" -ls

GNU date -d で受け入れられる任意の日付文字列を受け入れます。 .

c を変更できます -newercta のいずれかに 、 Bc 、または m atime/birth/ctime/mtime を見るため。

別の例 - 2017 年 11 月 6 日の 17:30 から 22:00 の間に変更されたファイルのリスト:

find -newermt "2017-11-06 17:30:00" ! -newermt "2017-11-06 22:00:00" -ls

man find からの完全な詳細 :

   -newerXY reference
          Compares the timestamp of the current file with reference.  The reference argument is normally the name of a file (and one of its timestamps  is  used
          for  the  comparison)  but  it may also be a string describing an absolute time.  X and Y are placeholders for other letters, and these letters select
          which time belonging to how reference is used for the comparison.

          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

          Some combinations are invalid; for example, it is invalid for X to be t.  Some combinations are not implemented on all systems; for example B  is  not
          supported on all systems.  If an invalid or unsupported combination of XY is specified, a fatal error results.  Time specifications are interpreted as
          for the argument to the -d option of GNU date.  If you try to use the birth time of a reference file, and the birth time cannot be determined, a fatal
          error  message  results.   If  you  specify a test which refers to the birth time of files being examined, this test will fail for any files where the
          birth time is unknown.

以下を使用して、必要なものを見つけることができます。

特定の日時より古いファイルを検索:

find ~/ -mtime $(echo $(date +%s) - $(date +%s -d"Dec 31, 2009 23:59:59") | bc -l | awk '{print $1 / 86400}' | bc -l)

または、2 つの日付の間にファイルを見つけることができます。最初の日付は最近、最後の日付は古い。秒まで下げることができ、mtime を使用する必要はありません。必要なものは何でも使用できます。

find . -mtime $(date +%s -d"Aug 10, 2013 23:59:59") -mtime $(date +%s -d"Aug 1, 2013 23:59:59")

ここにいくつかの良い解決策があります。短くてシンプルなので、私のものを共有したかった.

find (GNU findutils) 4.5.11 を使用しています

$ find search/path/ -newermt 20130801 \! -newermt 20130831

次のコマンドを試してください:

find /var/tmp -mtime +2 -a -mtime -8 -ls

これにより、/var/tmp 内のファイルを見つけることができます 2 より古いフォルダ 日、ただし 8 より古いものではない


Linux
  1. シェル内の範囲間の乱数

  2. 指定された時間よりも新しいすべてのファイルを再帰的に見つける

  3. 特定の日付のファイルを検索して削除する

  1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  2. 2 回の間に作成されたファイルを削除するには?

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

  1. Linuxでのアクセス、変更日時に基づいてファイルを検索して並べ替える

  2. Linux –ファイルの作成日を見つける方法は?

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