2009-07-30 3 views

Antwort

4

Siehe das GNU find Handbuch (und die time input formats Informationen auch).

Insbesondere scheint die -newerct '30-Jul-2009 04:37' Option das meiste zu tun, was Sie wollen.

Der einzige Haken ist, dass die Manpage bedeutet, dass es für Dateien arbeitet, die streng neuer sind als die angegebene Zeit. Das deutet darauf hin, dass Sie die absolute Zeit verwenden müssen:

1248957000 = 2009-07-30 05:30:00 (TZ = US/Pacific = UTC-07:00) 

-newerct @1248957000 

Dies bleibt immer noch das Problem, wie mit der streng größer als Semantik umzugehen.

-newerct @1248956999 -a ! -newerct @1248957001 

Dies funktioniert, aber ist unbestreitbar chaotisch (und vorausgesetzt, dass Sie Werkzeuge haben den Unix-Zeitstempel von einem Datum/Zeit-Wert zu erhalten).

Sie benötigen eine neue Version von find, damit dies funktioniert (GNU findutils 4.4.2 ist aktuell).

+0

Ich habe eine neue Frage über Zeitstempel hier geöffnet: http://stackoverflow.com/questions/1204669/easiest-way-to-generate-unix-timestamp. Sie sind neu für mich. –

2
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}') 
do 
mv $file /tmp 
done 
+0

Bitte beachten Sie mein Ziel aktualisiert. Ich kenne die Dateien, aber ich kann sie nicht mit dem Kriterium verschieben: Erstellungszeit. –

+0

* spezifische Erstellungszeit, nicht kleiner als oder größer als. –

0

Ich bin nicht sicher, warum Sie die "exec {} +" Syntax verwenden ... Wie wäre es damit:

find . -ctime "0037043007" -exec mv \{} /tmp/ \;