Bonjour,
je souhaite propgrammer un tâche cron qui va m'effacer tous les fichiers plus vieux de 4 semaines dans un répertoire. Je pensais qu'un truc comme cela ce faisait bien avec la commande find. Cependant je n'arrive pas à trouver l'option qui va bien. J'ai bien pensé à utiliser l'option newer, mais ca m'obligerai a faire "touch fichieridiot" avant de lancer la commande (afin de comparer l'age des fichiers avec l'age du fichier idiot). Je suis sûr qu'il y a plus simple qui doit passer en une seule ligne.
Quelqu'un a-t-il une idée.
D'avances mille mercis.
# man find
Posté par Vincent P (site web personnel) . Évalué à 1.
-atime n
File was last accessed n*24 hours ago.
RTFM...
[^] # Re: man find
Posté par 桃白白 . Évalué à -2.
# -mtime <nbr_de_jours>
Posté par tgl . Évalué à 2.
Sinon, tu peut toujours regarder du côté de tmpwatch ou tmpreaper, qui sont deux programmes spécialisés dans ce genre de nettoyage (enfin, ça devient intérressant surtout pour nettoyer une arborescence, y compris les sous-répertoires, mais dans ton cas find fera bien l'affaire).
# mtime, atime et ctime
Posté par sifu . Évalué à 5.
Je pense qu'avec les options mtime, atime et ctime de find cela devrait être possible. Il faut choisir l'option qui correspond au besoin.
La commande suivante listera par exemple les fichiers vieux (fichiers modifiés) de plus de 3 jours:
find /tmp -type f -mtime +3
En utilisant, xargs il est possible de les effacer:
find /tmp -type f -mtime +3 | xargs -r -n 10 rm
L'option r permet de ne rien lancer s'il n'y a pas de fichier et l'option n 10 permet de lancer la commande sur des paquets de 10 fichiers.
Cette dernière peut-être utile quand les listes sont trop longues...
Il est possible d'utiliser l'option exec pour faire la même chose:
find /tmp -type f -mtime +3 -exec rm {} \;
Mais ceci lancera la commande à chaque fichier.
Sifu
[^] # Re: mtime, atime et ctime
Posté par 桃白白 . Évalué à 0.
Merci.
[^] # Re: mtime, atime et ctime
Posté par 태 (site web personnel) . Évalué à 0.
rm **/*(mM+1^/)
(efface tous les fichiers pas repertoires qui ont pour la dernière fois été modifiés il y a au moins un mois)
[^] # Re: mtime, atime et ctime
Posté par sifu . Évalué à 3.
Je serais preneur d'un peu plus d'explications. Car chez moi, j'ai le résultat suivant:
bash: syntax error near unexpected token `**/*(m'
Merci.
PS: Voici ma version de bash:
# bash --version
GNU bash, version 2.05a.0(1)-release (i386-pc-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.
[^] # Re: mtime, atime et ctime
Posté par 태 (site web personnel) . Évalué à 0.
% $SHELL --version
zsh 4.2.3 (powerpc-apple-darwin8.0)
désolé...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.