Ubuntu Linux: Dateien zwischen bestimmten Zeiten finden?


19

Ich habe einen SO gefunden, der mit Find / Grep aufgerufen wurde , um Dateien zwischen bestimmten Tageszeiten zu durchsuchen

Basierend darauf und einem Unix-SE namens Grep-Befehl, um Dateien zu finden, die Textzeichenfolgen enthalten, und diese zu verschieben, ergab sich Folgendes :

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

Aber es verschiebt ALLE Dateien. Macht es einen Unterschied, dass ich Ubuntu benutze?

Ich möchte nur alle Dateien zwischen 6 und 18 Uhr in ein anderes Verzeichnis verschieben. Anregungen wäre dankbar.

Antworten:


32

Eigentlich hat findschon diese Funktionalität:

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

Aus der Manpage:

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

Danke @msdl, das habe ich nicht gemerkt. Es scheint nur auf das heutige Datum zu reagieren, wenn "08:00:00" ohne das Datum angegeben wird, daher scheint es einen Tag zu einer Zeit zu benötigen. Aber das werde ich tun - danke!
Digitaltoast

Wie kann ich diese Dateien im Terminal drucken lassen? Ich habe diesen Befehl ausprobiert, aber er hat nichts für mich gedruckt!
Kulasangar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.