Die POSIX-Spezifikation für find sagt:
-mtime
n
Der Primärwert soll als wahr ausgewertet werden, wenn die von der Initialisierungszeit subtrahierte Dateiänderungszeit, dividiert durch 86400 (wobei alle Reste verworfen werden), n
ist .
Interessanterweise die Beschreibung von find
spezifiziert die 'Initialisierungszeit' nicht weiter. Wahrscheinlich ist es aber die Zeit, in der find
wird initialisiert (run).
In den Beschreibungen, wo immer n
als primäres Argument verwendet wird, wird es wie folgt als dezimale Ganzzahl interpretiert, der optional ein Pluszeichen ( '+' ) oder ein Minuszeichen ( '-' ) vorangestellt ist:
+n
Mehr als n
.
n
Genau n
.
-n
Weniger als n
.
Sie können -mtime 6
schreiben oder -mtime -6
oder -mtime +6
:
- Mit
6
ohne Vorzeichen bedeutet "gleich 6 Tage alt — also modifiziert zwischen 'jetzt - 6 * 86400' und 'jetzt - 7 * 86400'" (weil Bruchteile von Tagen verworfen werden). - Mit
-6
bedeutet "weniger als 6 Tage alt — also geändert am oder nach 'jetzt - 6 * 86400'". - Mit
+6
bedeutet "mehr als 6 Tage alt — also geändert am oder vor 'jetzt - 7 * 86400'" (wobei die 7 vielleicht etwas unerwartet ist).
Zur gegebenen Zeit (2014-09-01 00:53:44 -4:00), wo ich folgere, dass AST Atlantic Standard Time ist und daher der Zeitzonenversatz von UTC in ISO 8601 -4:00, aber + ist 4:00 in ISO 9945 (POSIX), aber es spielt keine so große Rolle):
1409547224 = 2014-09-01 00:53:44 -04:00
1409457540 = 2014-08-30 23:59:00 -04:00
Also:
1409547224 - 1409457540 = 89684
89684 / 86400 = 1
Selbst wenn die Werte für „Sekunden seit der Epoche“ falsch sind, sind die relativen Werte korrekt (für einige Zeitzonen irgendwo auf der Welt sind sie korrekt).
Der n
Der für die Protokolldatei vom 30.08.2014 berechnete Wert ist daher genau 1
(die Berechnung erfolgt mit Integer-Arithmetik) und der +1
lehnt es ab, weil es streng genommen ein > 1
ist Vergleich (und nicht >= 1
).
+1 bedeutet vor 2 Tagen. Es ist abgerundet.