Wie kann ich gefundene Dinge "Jul 30 04:37" finden und nach/tmp verschieben? Etwas falsch:find-command: Suche mit der erstellten Zeit
find . -ctime "0037043007" -exec mv {} /tmp +
Wie kann ich gefundene Dinge "Jul 30 04:37" finden und nach/tmp verschieben? Etwas falsch:find-command: Suche mit der erstellten Zeit
find . -ctime "0037043007" -exec mv {} /tmp +
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).
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
do
mv $file /tmp
done
Bitte beachten Sie mein Ziel aktualisiert. Ich kenne die Dateien, aber ich kann sie nicht mit dem Kriterium verschieben: Erstellungszeit. –
* spezifische Erstellungszeit, nicht kleiner als oder größer als. –
Ich bin nicht sicher, warum Sie die "exec {} +
" Syntax verwenden ... Wie wäre es damit:
find . -ctime "0037043007" -exec mv \{} /tmp/ \;
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. –