Ubuntu Linux: ¿encuentra archivos entre tiempos específicos?


19

Encontré un SO llamado usando Find / Grep para buscar archivos entre una hora específica del día

Basado en eso y un Unix SE llamado comando Grep para encontrar archivos que contienen cadenas de texto y moverlos , terminé con:

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

Pero está moviendo TODOS los archivos. ¿Hace alguna diferencia que estoy usando Ubuntu?

Todo lo que quiero hacer es mover todos los archivos entre las 6 a.m. y las 6 p.m. a otro directorio. Cualquier sugerencia sera apreciada.

Respuestas:


32

En realidad, findya tiene esta funcionalidad:

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

Desde la página del manual:

-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.

Gracias @msdl, no me di cuenta de eso. Parece que solo actúa en la fecha de hoy cuando da "08:00:00" sin la fecha, por lo que parece que necesita un día a la vez. Pero eso me servirá, ¡gracias!
digitaltoast

Entonces, ¿cómo puedo imprimir esos archivos en el terminal? Intenté este comando pero no me imprimió nada.
Kulasangar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.