GNU/Linux >> Belajar Linux >  >> Linux

Temukan file yang dibuat di antara rentang tanggal

Jika Anda menggunakan GNU find , sejak versi 4.3.3 Anda dapat melakukan:

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

Itu akan menerima string tanggal apa pun yang diterima oleh GNU date -d .

Anda dapat mengubah c di -newerct ke salah satu dari a , B , c , atau m untuk melihat atime/birth/ctime/mtime.

Contoh lain - daftar file yang diubah antara pukul 17:30 dan 22:00 pada 6 November 2017:

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

Detail lengkap dari 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.

Anda dapat menggunakan di bawah ini untuk menemukan apa yang Anda butuhkan.

Temukan file yang lebih lama dari tanggal/waktu tertentu:

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

Atau Anda dapat menemukan file di antara dua tanggal. Kencan pertama lebih baru, kencan terakhir, lebih tua. Anda bisa turun ke yang kedua, dan Anda tidak harus menggunakan mtime. Anda dapat menggunakan apa pun yang Anda butuhkan.

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

Beberapa solusi bagus di sini. Ingin membagikan milik saya serta pendek dan sederhana.

Saya menggunakan find (GNU findutils) 4.5.11

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

Coba perintah berikut:

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

Ini akan memungkinkan Anda menemukan file di /var/tmp folder yang lebih lama dari 2 hari tetapi tidak lebih dari 8 hari.


Linux
  1. Linux – Bagaimana Menemukan Tanggal Pembuatan File?

  2. Bagaimana cara membuat daftar file yang diubah dalam rentang waktu tertentu?

  3. Apakah Mungkin Untuk Mentransfer File Dalam Rentang Tanggal Melalui Ftp?

  1. Angka acak antara rentang di shell

  2. Menemukan dan menghapus file dengan tanggal tertentu

  3. Linux:menggunakan find untuk menemukan file yang lebih lama dari <tanggal>

  1. Cara Menemukan dan Mengurutkan File Berdasarkan Tanggal dan Waktu Modifikasi di Linux

  2. Linux – Bagaimana Cara Menghapus File yang Dibuat Antara Dua Kali?

  3. Bagaimana Cara Mendapatkan Hanya File yang Dibuat Setelah Berkencan Dengan Ls?