Ruslan Ermilov <ru_at_freebsd.org> writes: > "-mtime -0" interacts badly with the TIME_CORRECT() macro when mtime > and run-time happen to be the same second. While I think it's a bug > in the find(1) code that needs to be fixed, using "-mtime -0s" seems > to avoid the macro and thus works as expected. % date ; touch foo ; find foo -mtime 0s ; date ; sleep 1 ; find foo -mtime 0s ; date Wed Aug 20 10:09:11 CEST 2008 foo Wed Aug 20 10:09:11 CEST 2008 Wed Aug 20 10:09:12 CEST 2008 % date ; touch foo ; find foo -mtime 0s ; date ; sleep 1 ; find foo -mtime 1s ; date Wed Aug 20 10:11:23 CEST 2008 foo Wed Aug 20 10:11:23 CEST 2008 foo Wed Aug 20 10:11:24 CEST 2008 '-mtime Ns' evaluates to true if the difference between current time and the file's mtime is *exactly* N seconds. '-mtime N' evaluates to true if the difference between current time and the file's mtime is between N-1 and N days. As written, the test will fail if sys/sys/param.h's mtime is between now and 86399 seconds into the future, and succeed otherwise. If we change 0 to 0s, it will fail if sys/sys/param.h's mtime is exactly the current time, and succeed otherwise. Personally, I think the test is useless, as there are a million other ways to mess up your build, but if you absolutely must have it there, the correct predicate would be '-newermt now'. DES -- Dag-Erling Smørgrav - des_at_des.noReceived on Wed Aug 20 2008 - 06:18:32 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:34 UTC