La specifica POSIX per find dice:
-mtimenIl 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
nviene utilizzato come argomento primario, deve essere interpretato come un numero intero decimale eventualmente preceduto da un segno più ( '+' ) o meno ( '-' ), come segue:
+nPiù din.
nEsattamenten.
-nMinore din.
Puoi scrivere
-mtime 6o-mtime -6o-mtime +6:
- Utilizzando
6senza segno significa "uguale a 6 giorni — così modificato tra 'ora - 6 * 86400' e 'ora - 7 * 86400'" (perché i giorni frazionari vengono scartati).- Utilizzando
-6significa "meno di 6 giorni — così modificato il o dopo 'ora - 6 * 86400'".- Utilizzando
+6significa "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.