GNU/Linux >> Tutoriels Linux >  >> Linux

Rechercher des fichiers créés entre une plage de dates

Si vous utilisez GNU find , depuis la version 4.3.3 vous pouvez faire :

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

Il acceptera toute chaîne de date acceptée par GNU date -d .

Vous pouvez modifier le c en -newerct à l'un des a , B , c , ou m pour regarder atime/birth/ctime/mtime.

Autre exemple - liste des fichiers modifiés entre 17h30 et 22h00 le 6 novembre 2017 :

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

Tous les détails de 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.

Vous pouvez utiliser le ci-dessous pour trouver ce dont vous avez besoin.

Rechercher des fichiers antérieurs à une date/heure spécifique :

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

Ou vous pouvez trouver des fichiers entre deux dates. Premier rendez-vous plus récent, dernier rendez-vous plus ancien. Vous pouvez descendre jusqu'à la seconde, et vous n'avez pas besoin d'utiliser mtime. Vous pouvez utiliser tout ce dont vous avez besoin.

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

Quelques bonnes solutions ici. Je voulais partager le mien aussi bien qu'il est court et simple.

J'utilise find (GNU findutils) 4.5.11

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

Essayez la commande suivante :

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

Cela vous permettra de trouver des fichiers en /var/tmp dossier antérieur à 2 jours mais pas plus vieux que 8 jours.


Linux
  1. Comment rechercher et trier des fichiers en fonction de la date et de l'heure de modification sous Linux

  2. Rechercher et trier des fichiers en fonction de l'accès, de la date et de l'heure de modification sous Linux

  3. Est-il possible de transférer des fichiers dans une plage de dates via FTP ?

  4. Linux - Obtenir des fichiers pour la date actuelle sous Linux ?

  5. Nombre aléatoire entre la plage dans le shell

Comment rechercher et répertorier récursivement les fichiers par date sous Linux

Comment trouver la date et l'heure exactes d'installation de votre système d'exploitation Linux

Comment trouver la date et l'heure d'installation du système d'exploitation Linux

L'indicateur de temps n'affiche pas la date/l'heure ?

linux-shell :renommer les fichiers à l'heure de création

Recherche et suppression de fichiers avec une date spécifique