GNU/Linux >> Linux Esercitazione >  >> Linux

Trova i file creati tra un intervallo di date

Se usi GNU find , dalla versione 4.3.3 puoi fare:

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

Accetterà qualsiasi stringa di data accettata da GNU date -d .

Puoi cambiare il c in -newerct a uno qualsiasi dei a , B , c o m per guardare atime/birth/ctime/mtime.

Un altro esempio:elenca i file modificati tra le 17:30 e le 22:00 del 6 novembre 2017:

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

Dettagli completi da 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.

Puoi utilizzare quanto segue per trovare ciò di cui hai bisogno.

Trova file più vecchi di una data/ora specifica:

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

Oppure puoi trovare file tra due date. Primo appuntamento più recente, ultimo appuntamento, più vecchio. Puoi scendere al secondo e non devi usare mtime. Puoi usare tutto ciò di cui hai bisogno.

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

Alcune buone soluzioni qui. Volevo condividere il mio così come è breve e semplice.

Sto usando find (GNU findutils) 4.5.11

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

Prova il seguente comando:

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

Questo ti permetterà di trovare i file in /var/tmp cartella più vecchia di 2 giorni ma non più vecchi di 8 giorni.


Linux
  1. Trova in modo ricorsivo tutti i file più recenti di un dato momento

  2. Copia di file in base alla data di modifica in Linux

  3. linux-shell:ridenominazione dei file al momento della creazione

  4. Ricerca ed eliminazione di file con una data specifica

  5. Come eliminare i file creati tra due volte?

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come trovare la data e l'ora esatte di installazione del tuo sistema operativo Linux

Come trovare la data e l'ora di installazione del sistema operativo Linux

È possibile trasferire file in un intervallo di date tramite FTP?

L'indicatore dell'ora non mostra la data/l'ora?

Numero casuale tra l'intervallo nella shell