GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie Dateien, die zwischen einem Datumsbereich erstellt wurden

Wenn Sie GNU find verwenden , seit Version 4.3.3 können Sie Folgendes tun:

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

Es akzeptiert jede von GNU date -d akzeptierte Datumszeichenfolge .

Sie können den c ändern in -newerct zu einem von a , B , c , oder m zum Betrachten von atime/birth/ctime/mtime.

Ein weiteres Beispiel – Dateien auflisten, die am 6. November 2017 zwischen 17:30 und 22:00 Uhr geändert wurden:

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

Vollständige Details ab 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.

Sie können das Folgende verwenden, um zu finden, was Sie brauchen.

Dateien finden, die älter als ein bestimmtes Datum/eine bestimmte Uhrzeit sind:

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

Oder Sie können Dateien zwischen zwei Daten finden. Erstes Datum jünger, letztes Datum älter. Sie können auf die Sekunde heruntergehen und müssen mtime nicht verwenden. Sie können alles verwenden, was Sie brauchen.

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

Einige gute Lösungen hier. Wollte meins teilen, so wie es kurz und einfach ist.

Ich verwende find (GNU findutils) 4.5.11

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

Versuchen Sie den folgenden Befehl:

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

Dadurch können Sie Dateien in /var/tmp finden Ordner, die älter als 2 sind Tage, aber nicht älter als 8 Tage.


Linux
  1. So finden und sortieren Sie Dateien basierend auf Änderungsdatum und -zeit in Linux

  2. Zufallszahl zwischen Bereich in Shell

  3. Finden Sie rekursiv alle Dateien, die neuer als eine bestimmte Zeit sind

  4. Suchen und Löschen von Dateien mit einem bestimmten Datum

  5. Wie lösche ich Dateien, die zwischen zwei Mal erstellt wurden?

So finden und listen Sie die Dateien rekursiv nach Datum in Linux auf

So finden Sie das genaue Installationsdatum und die Uhrzeit Ihres Linux-Betriebssystems

So finden Sie das Installationsdatum und die Uhrzeit des Linux-Betriebssystems

Ist es möglich, Dateien in einem Datumsbereich per FTP zu übertragen?

Zeitanzeige zeigt Datum/Uhrzeit nicht an?

Linux:Verwenden von find zum Auffinden von Dateien, die älter als <Datum> sind