La specifica POSIX per find dice:
-mtime
n
Il primario deve valutare come vero se il tempo di modifica del file sottratto dal tempo di inizializzazione, diviso per 86400 (con qualsiasi resto scartato), èn
.
È interessante notare che la descrizione di find
non specifica ulteriormente il "tempo di inizializzazione". Probabilmente è il momento in cui find
è inizializzato (run).
Nelle descrizioni, ovunque
n
viene utilizzato come argomento primario, deve essere interpretato come un numero intero decimale eventualmente preceduto da un segno più ( '+' ) o meno ( '-' ), come segue:
+n
Più din
.
n
Esattamenten
.
-n
Minore din
.
Puoi scrivere
-mtime 6
o-mtime -6
o-mtime +6
:
- Utilizzando
6
senza segno significa "uguale a 6 giorni — così modificato tra 'ora - 6 * 86400' e 'ora - 7 * 86400'" (perché i giorni frazionari vengono scartati).- Utilizzando
-6
significa "meno di 6 giorni — così modificato il o dopo 'ora - 6 * 86400'".- Utilizzando
+6
significa "più di 6 giorni fa — così modificato il o prima di 'ora - 7 * 86400'" (dove il 7 è un po' inaspettato, forse).
In un dato momento (2014-09-01 00:53:44 -4:00, dove sto deducendo che AST è Atlantic Standard Time, e quindi l'offset del fuso orario da UTC è -4:00 in ISO 8601 ma + 4:00 in ISO 9945 (POSIX), ma poco importa):
1409547224 = 2014-09-01 00:53:44 -04:00
1409457540 = 2014-08-30 23:59:00 -04:00
quindi:
1409547224 - 1409457540 = 89684
89684 / 86400 = 1
Anche se i valori dei "secondi dall'epoca" sono sbagliati, i valori relativi sono corretti (per alcuni fusi orari da qualche parte nel mondo, sono corretti).
Il n
il valore calcolato per il file di log 2014-08-30, pertanto, è esattamente 1
(il calcolo viene eseguito con l'aritmetica dei numeri interi) e il +1
lo rifiuta perché è strettamente un > 1
confronto (e non >= 1
).
+1 significa 2 giorni fa. È arrotondato.