Trova la differenza con mtime – e +

Può qualcuno spiegare la differenza con il mtime – e + switch poiché entrambi non stanno riportndo i risultati necessari. Sto cercando di eliminare tutti i file più vecchi di 5 giorni

find /mnt/sdb1/tmp/ -type f -mtime +5 -exec ls {} \; find /mnt/sdb1/tmp/ -type f -mtime -5 -exec ls {} \; 

Ho cambiato l'output a ls per confrontare i risultati

Grazie

Dalla pagina degli uomini find :

  Numeric arguments can be specified as +n for greater than n, -n for less than n, n for exactly n. -mtime n File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times. -atime n File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago. 

Così, -mtime +5 troverà questi file modificati per ultimo più di 5 * 24h fa e -mtime -5 troverà i file modificati per ultimo less di 5 * 24h fa. Per eliminare i file che sono più vecchi di 5 giorni si farebbe:

 find /mnt/sdb1/tmp/ -type f -mtime +5 -exec rm {} \; 

Se questo non restituisce il risultato desiderato, potrebbe essere un problema con il timestamp. È correttamente segnalato per i file in questione? Se si tratta di un'unità esterna USB, i file potrebbero essere stati creati su un'altra macchina e hanno un timbordo diverso da quello previsto.

-mtime +5 dovrebbe mostrare tutti i file modificati 5 giorni e prima (6, 7, …), mentre -5 dovrebbe mostrare quelli modificati oggi fino a 5 giorni fa.