Hallo Bernd Am Freitag, 27. August 2010, 19:32:39 schrieb Lentes, Bernd:
pc53082:~ # date Fri Aug 27 19:06:02 CEST 2010 pc53082:~ # find . -type f -mtime 0 -exec ls -la {} \;|grep -w test pc53082:~ # pc53082:~ # find . -type f -mtime 1 -exec ls -la {} \;|grep -w test -rw-r--r-- 1 root root 0 Aug 26 19:04 ./test pc53082:~ #
Die Datei ist im zweiten Beispiel in beiden Fällen zwar gestern geändert worden, wird aber nur einmal gefunden !
--------------------------------------------------------------------------- -----------------
Da stolpere ich in der manpage über -daystart und denke, das ist die Lösung meines Problems: "-daystart Measure times (for -amin, -atime, -cmin, -ctime, -mmin, and -mtime) from the beginning of today rather than from 24 hours ago. This option only affects tests which appear later on the command line." Mißt von "beginning of today", sprich, auf heute bezogen, von 27.8.2010 00:00. Da meine Datei am 26.8. um 19:04 geändert wurde, ist sie, beginnend von 27.8. 00:00, 0,xxx * 24h alt. Somit müsste sie mit folgender Zeile zu finden sein:
pc53082:~ # date Fri Aug 27 19:18:36 CEST 2010 pc53082:~ # find . -type f -daystart -mtime 0 -exec ls -la {} \;|grep -w test pc53082:~
Wird sie aber nicht, seltsam.
Folgende Zeile sollte die Datei nicht finden: pc53082:~ # find . -type f -daystart -mtime 1 -exec ls -la {} \;|grep -w test -rw-r--r-- 1 root root 0 Aug 26 19:04 ./test pc53082:~ # Tut sie aber, seltsam. Die Datei ist, vom Standpunkt 27.8. 00:00, 0,xxx * 24h alt. Das ",xxx" wird abgeschnitten, damit bleibt 0 übrig. 0 ist nicht gleich 1, aber die Datei wird gefunden.
Auch diese Zeile sollte die Datei nicht finden:
pc53082:~ # find . -type f -daystart -mtime +0 -exec ls -la {} \;|grep -w test -rw-r--r-- 1 root root 0 Aug 26 19:04 ./test
Da die Datei 0,xxx * 24h alt ist und ,xxx abgeschnitten wird, ist die Bedingung "+0" nicht erfüllt. Die Datei wird aber gefunden.
Wo ist mein Denkfehler ?
Ich habe das Buch Linux GE-PACKT, und habe darin nachgeschaut. Es ist nicht nur eine deutschsprachige Referenz, sondern enthält auch sehr anschauliche Beispiele, wie zB folgendes: find -type f -atime +10 -atime -20 Damit sind alle Dateien gemeint (type f) auf die vor 10 bis 20 Tage zugegriffen wurde. Man achte auf die + und - Zeichen. Teste einfach mal find -daystart -mtime +1 find -daystart -mtime -1 Du wirst merken, das dabei zwei verschiedene Ergebnisse rauskommen. Die Zweite Variante gibt bei mir zB eine Testdatei aus, die ich gerade eben angelegt habe. Hier noch kurz was in dem Buch zu -daystar steht: "Diese Option bewirkt, dass die mit den Optionen -atime, amin, -ctime, cmin, mtime und -mmin angegebenen Zeiten vom Beginn dieses Tages an berechnet werden und nicht und nicht bezüglich des aktuellen Zeitpunktes. '-atime 0' steht für die letzten 24 Stunden, '-daystart -atime 0' für 'heute ab 0:00'." Ich hoffe ich konnte nützliche Anstöße beisteuern. Viele Grüße Peter -- ######################################################################## ######################################################################## ######################################################################## ######################################################################## -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org