Trouver la différence avec mtime – et +

Quelqu'un peut-il expliquer la différence avec mtime – et + switch car les deux ne ramènent pas les résultats dont j'ai besoin. Je cherche à supprimer tous les fichiers plus anciens que 5 jours

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

J'ai changé la sortie à ls pour comparer les résultats

Merci

De la page de manuel de la rencontre:

  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. 

Ainsi, -mtime +5 trouvera les derniers fichiers modifiés plus de 5 * 24h et -mtime -5 trouveront les derniers fichiers modifiés moins de 5 * 24h. Pour supprimer des fichiers de plus de 5 jours, vous le feriez:

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

Si cela ne renvoie pas le résultat souhaité, il peut y avoir un problème avec l'horodatage. Est-il correctement rapporté pour les fichiers en question? S'il s'agit d'un lecteur USB externe, les fichiers peuvent avoir été créés sur une autre machine et avoir un timstamp différent de ce que vous attendez.

-mtime +5 devrait vous montrer tous les fichiers modifiés 5 jours et avant (6, 7, …), tandis que -5 devrait montrer ceux modifiés aujourd'hui jusqu'à 5 jours.