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
6ohne Vorzeichen bedeutet "gleich 6 Tage alt — also modifiziert zwischen 'jetzt - 6 * 86400' und 'jetzt - 7 * 86400'" (weil Bruchteile von Tagen verworfen werden). - Mit
-6bedeutet "weniger als 6 Tage alt — also geändert am oder nach 'jetzt - 6 * 86400'". - Mit
+6bedeutet "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.