find + mtime

find + mtime - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-04-2007 à 11:05:18    

Bonjour :)
 
Dans une arborescence, je cherche à supprimer tout les fichiers qui sont plus vieux que 3 jours, j'utilise donc cette commande :
 

Citation :


find . -type f -mtime +3 -print0 | xargs -0 rm -f


 
Mais ensuite quand je fait un ls -l sur le dossier je m'aperçois que j'ai quand même des fichiers plus vieux que 3 jours (4 voire 5 jours parfois).
 
Au début je pensais que que ça venait de mon utilisation de -mtime et que j'aurais du utiliser -atime à la place, mais quand je refait le test, ça ne change rien.
 
Je ne parvient pas à trouver de solution correcte.
 
Si jamais quelqu'un a une idée, ça serait super.
 
Merci d'avance
 
:)

Reply

Marsh Posté le 17-04-2007 à 11:05:18   

Reply

Marsh Posté le 17-04-2007 à 11:12:12    

essaye find . -type f -mtime +2 -rm -f

Reply

Marsh Posté le 17-04-2007 à 11:17:28    

Merci à toi.
 
C'est pourtant bizarre, quand je lance le find avec mtime +2 j'ai quand même des fichiers qui datent du 13/04/2007.
 

Citation :


find . -type f -mtime +2 -print0 | xargs -0 rm -f

Reply

Marsh Posté le 17-04-2007 à 11:22:43    

Dixit man find :
 

Citation :


       -mtime n
              Fichier dont les données ont été modifiées il y a n*24 heures. Consultez l'explication sur -atime pour  comprendre  comment  les  effets  d'arrondis  affectent l'interprétation des dates de dernière modification des fichiers.
 
       -atime n
              Dernier accès au fichier il y a n*24 heures. Lorsque find calcule le nombre de période de 24 heures depuis lequel le fichier a été accédé, la partie  fractionnelle est ignorée. Ainsi, pour correspondre à -atime +1, un fichier doit avoir été accédé il y a au moins deux jours.


 
je pense que cela répond à ton problème
 
 
 
Note: jeriko6911 > ta commande telle que ne marche pas ;) petit oubli :
find . -type f -mtime +2 -exec rm -f {} \;

Reply

Marsh Posté le 17-04-2007 à 11:24:41    

Ha damned, je n'avais pas vu ça.
 
Bon RTFM..
 
Merci à toi

Reply

Marsh Posté le 17-04-2007 à 11:25:14    

quand tu dis que tes fichiers datent du 13/04, c'est qu'ils ont été créés le 13/04 ou modifiés le 13/04 ??
 
parce que -mtime regarde la date de modification uniquement ...

Reply

Marsh Posté le 17-04-2007 à 11:31:41    

Les fichiers qui ont été créé le 13/04 puis ouverts dans la journée.  
En aucun cas il ne sont réécrit.
 
J'ai déjà testé avec -ctime mais j'avais le même résultat, et je me disais qu'avec -mtime ça irait mieux, on sait jamais sur un malentendu ça peut marcher :D.
 
En fait que ce soit -atime, -ctime ou -mtime mon résultat est le même.

Reply

Marsh Posté le 17-04-2007 à 11:37:39    

c'est curieux quand même ...
parce que si tu n'as absolument pas touché à tes fichiers depuis le 13 (ça fait 4jours quand même ...) -mtime +3 devrait les voir ...

Reply

Marsh Posté le 17-04-2007 à 11:43:35    

Ben oui, je ne comprend pas.
 
Je vais faire un petit script shell qui va supprimer tout ça et voilà, ça n'est pas très grave, c'est juste que j'aurais préféré maitriser find complètement, mais le temps me manque :'(
 
Merci à toi en tout cas
 
:)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed