Recette de shell: une ligne pour supprimer des fichiers non touchés depuis deux heures
Aujourd’hui, une recette rapide qui répond à ce besoin: trouver dans mon répertoire /tmp
tous les fichiers écrits par apache
et auxquels on n’a pas accédé depuis plus de deux heures.
$ find /tmp -maxdepth 1 -amin "+$((60 * 2))" -user apache -type f -delete
L’option -amin
filtre sur l’access time
en minutes (⚠️ différent du modification time
). Je calcule à la volée ici 2 heures en minutes, j’aurais pu écrire 120 directement, mais je trouvais ça plus facile si je voulais changer le nombre d’heures de différence. La valeur est préfixée par +
pour signifier que je filtre sur tout ce qui est plus vieux de 2h.
Je filtre uniquement les fichiers -type f
et non les répertoires, et je me limite à ce qui est à la racine de /tmp
avec -maxdepth 1
, ainsi qu’à ceux dont le propriétaire est apache
grâce au filtre -user
.
Cette ligne est exécutée dans un cron
pour faire du nettoyage. J’aime bien quand c’est rangé.