Ubuntu Linux: trouver des fichiers entre des moments précis?

19

J'ai trouvé un SO appelé à l' aide de Find / Grep pour rechercher des fichiers entre une heure précise de la journée

Sur la base de cela et d'une commande Unix SE appelée Grep pour trouver des fichiers contenant une chaîne de texte et les déplacer, je me suis retrouvé avec:

find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/

Mais ça déplace TOUS les fichiers. Cela fait-il une différence que j'utilise Ubuntu?

Tout ce que je veux faire, c'est déplacer tous les fichiers entre 6h et 18h dans un autre répertoire. Toute suggestion serait appréciée.

digitaltoast
la source

Réponses:

32

En fait, a finddéjà cette fonctionnalité:

find . -newermt "2013-01-01 00:00:00" ! -newermt "2013-01-02 00:00:00"

Depuis la page de manuel:

-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  argu‐
       ment  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  deter‐
       mined,  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.
mrks
la source
Merci @msdl, je ne m'en étais pas rendu compte. Il semble n'agir qu'à la date d'aujourd'hui, quand il donne "08:00:00" sans la date, il semble donc qu'il ait besoin d'un jour à la fois. Mais ça me fera - merci!
digitaltoast
Alors, comment puis-je faire imprimer ces fichiers dans le terminal? j'ai essayé cette commande mais elle n'a rien imprimé pour moi!
Kulasangar