Je cherchais un moyen d’effacer automatiquement des fichiers dans un répertoire dont la date de création serait inférieure à une certaine date (plus vieille que).

La solution ? Une ligne de commande…

En fait, il s’agit de passer en paramètres à la commande ‘rm’ une liste de fichiers.

L’utilitaire Find est approprié dans ce cas. Nous utiliserons quelaues parametres :

  • -type f : précise que l’on cherche des fichiers
  • -mtime +10 : précise que l’on cherche des fichiers plus vieux que 240h (10*24h).
  • -maxdepth 1 : On ne veut pas aller récursivement dans tous les répertoires.

La commande find : find Junk -type f -mtime +10 -maxdepth 1 associée à la commande rm, cela nous donne : rm -f `find Junk -type f -mtime +10 -maxdepth 1`

Cette commande va supprimer tous les fichiers enfants direct du répertoire Junk qui n’ont plus été modifié depuis 10 jours. On pourrait aussi utiliser la commande ‘-delete’ de Find.

About the author
Jean-Christophe Cuvelier
Jean-Christophe Cuveliertotophe
Fractional CTO & technical lead · Brussels

He runs Wellmade, a product engineering studio, and still writes the code. Twenty years of building products for companies that wanted the thinking and the building done by the same person.